当前位置: 首页 > 知识库问答 >
问题:

Primefaces计划错误,保存事件自动将小时更改为上午12点

方寒
2023-03-14

我在应用程序中使用了primefaces时间表组件,发现了一个奇怪的行为。当我选择一个事件并按下“保存按钮”时,小时将重置为上午12点。经过长时间的调查,转到Primefaces Showcase页面了解更多信息。在Showcase中,计划行为是相同的。在“明细表可编辑”示例中http://www.primefaces.org/showcase/ui/data/schedule.xhtml例如,选择标题为“冠军联赛”的赛事,日期为2015年4月28日,时间为8:00至11:00,然后按下保存按钮。它会自动将时间更改为上午12点。这是正常行为吗?????

谢谢

编辑:我将在应用程序中添加与showcase相同或非常相似的代码。

事件的创建:

eventModel.addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm()));

设置时间范围的方法:

    private Date previousDay8Pm() {
    Calendar t = (Calendar) today().clone();
    t.set(Calendar.AM_PM, Calendar.PM);
    t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
    t.set(Calendar.HOUR, 8);

    return t.getTime();
}

private Date previousDay11Pm() {
    Calendar t = (Calendar) today().clone();
    t.set(Calendar.AM_PM, Calendar.PM);
    t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
    t.set(Calendar.HOUR, 11);

    return t.getTime();
}

添加按下“保存”按钮时调用的方法(只有我试图使用setStyleClass将事件背景更改为红色):

public void addEvent(ActionEvent actionEvent) {
    event.setStyleClass("emp1");
    eventModel.updateEvent(event);         
    event = new DefaultScheduleEvent();
}

共有1个答案

郑功
2023-03-14

因为这只是一个例子。

使用时间选择器添加输入文本,并在特定时间添加事件,同时创建事件指定时间范围,如:

eventModel.addEvent(new DefaultScheduleEvent("Birthday Party", today1Pm(),todat6Pm()); 

哪里

    private Date today1Pm() {
            Calendar t = (Calendar) today().clone();
            t.set(Calendar.AM_PM, Calendar.PM);
            t.set(Calendar.HOUR, 1);

            return t.getTime();
        }

        private Date today6Pm() {
            Calendar t = (Calendar) today().clone(); 
            t.set(Calendar.AM_PM, Calendar.PM);
            t.set(Calendar.HOUR, 6);

            return t.getTime();
        } 

至于showcase,是的,您需要一些更新才能实现:)

展示的行为,如果你没有定义任何时间框架,也没有设置AllDay检查事件被添加,如eventModel.addEvent(事件);设置默认时间为上午12点,是的,这是正常的!

使现代化

使用此方法添加新事件,startTime/endTime是由窗体设置的字段。我还使用snippet粘贴默认构造函数签名。

public void addEvent(ActionEvent actionEvent) {
    if(event.getId() == null)
        //DefaultScheduleEvent(String title, Date start, Date end, String styleClass) ;
        eventModel.addEvent(new DefaultScheduleEvent(actionEvent.Title(), calculateTime(startTime), calculateTime(endTime),"emp1"));
    else
        eventModel.updateEvent(event);
}
 类似资料:
  • 当我在javascript中使用“getHour()”方法时,它会显示军事时间格式。我需要它以1-12之间的数字显示小时。有人能告诉我怎么做吗?以下是我使用的代码:

  • 我使用primefaces 4.0,并尝试在primefaces惰性时间表中更改事件的颜色,因此我有以下xhtml代码 这是背景豆 问题是,这个代码使用primeface 3.3 JARS工作正常,但是当我切换到Primeface 4.0时,事件的颜色不再显示,事件变得有点透明!这个代码有什么问题?? PS:str.getajoutroulivr()是一个字符串,包含事件的样式类,它包含“Ajou

  • 我开发了一个应用程序,我想在按Enter后运行一些代码,在按Enter时代码成功运行。我想要一种方法来按Enter自动时,文本框的值改变。 但是作为事件,因为我有一个线程问题,所以如果我在键盘上按Enter,它运行得很好,但是当我写行代码()时,它不像我在键盘上按Enter,当按Enter运行方法“image()”时那样运行

  • 我正在使用TextView设置日期和时间与日期名称,但时间显示在24小时,我想设置在12小时格式。

  • 一个被提交了的改动会被永久地保存在仓库(repository)中。然而,在你日常工作中你经常需要“暂时地”保存一下你的一些本地改动。例如,如果你正在开发一个新的功能,但是与此同时又得到了一个错误报告,并且需要马上修复它,而你现在的本地改动又和这个错误毫无关系,因此你必须暂时地停止新功能的开发,来开始着手修复这个错误。并且你还想要保存那些已完成的开发工作,以便之后能继续来完成它。 像这样的情况会随时

  • 问题内容: 连接类别: 进行连接的方法,此方法附加了一个鼠标lostfocus事件,并从数据库中返回我想要的项目: 但是由于某种原因,在第二次尝试中,它将org.mysql更改为org.sqlite.JDBC java.sql.SQLException:无效的数据库地址: org.sqlite.JDBC.createConnection(JDBC.java:110)处的* jdbc:mysql:/