我在我的应用程序中使用了primefaces计划组件,并且检测到奇怪的行为。当我选择一个事件并按下“保存按钮”时,小时重置为上午12点。经过多次调查,转向Primefaces Showcase页面获取更多信息。 在展示中,时间表行为是相同的。例如,在附表编辑例http://www.primefaces.org/showcase/ui/data/schedule.xhtml中,选择标题为“冠军联赛”的赛事,该日期为2015年4月28日,时间为8:00至11:00,并按下保存按钮。它会自动将时间更改为上午12点。这是正常的行为吗?Primefaces Schedule Error,保存事件自动将小时更改为12am
谢谢。
编辑:我将添加我在我的应用程序中的代码,即与展示相同或非常相似。
创作活动:
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();
}
当推“保存”按钮(只有我试图改变事件的背景时调用Add方法到红色,带有setStyleClass):
public void addEvent(ActionEvent actionEvent) {
event.setStyleClass("emp1");
eventModel.updateEvent(event);
event = new DefaultScheduleEvent();
}
嗨@Sarz,感谢您的回答,但我有这样的代码在我的应用程序(相同或相似的代码,展示): 'eventModel.addEvent(新DefaultScheduleEvent(“欧洲冠军联赛”,previousDay8Pm() ,previousDay11Pm()));' 方法previousDay8Pm(): '私人日期previousDay8Pm(){ \t日历T =(日历)今日()的clone(); \t t.set(Calendar.AM_PM,Calendar.PM); (Calendar.DATE,t.get(Calendar.DATE) - 1); \t t.set(Calendar.HOUR,8); \t return t.getTime(); \t}' 我已经在创建时定义了事件的时间范围。我会更新我的第一篇文章。 – Levid
Hi @Sarz,它解决了!我的问题是,p:inputmask/f:convertdatetime在xhtml中只显示日,月和年。我认为,尽管模式是dd/MM/yyyy,但是小时节省了。我将99/99/9999 99:99添加到inputmask和dd/MM/yyyy HH:mm来转换datetime。也许我会限制使用outputtext,因为我不想改变事件数据。 addEvent方法只更新,因为这个想法是预先加载一个事件列表并更改选择/保存它的颜色(我只实现了“onEventSelect”方法来限制日期选择)。 谢谢你的帮助! – Levid