我在我的應用程序中使用了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