2011-03-24 42 views
2

我正在使用Mojarra,PrimeFaces 2.2.1和Tomcat 6.x開發JSF 2.0項目。Handle在primefaces的日曆上更改日期

我的申請已國際化。我用primefaces的日曆是這樣的:

<p:calendar value="#{boxItem.agendaDate}" mode="inline" 
     showOtherMonths="true" styleClass="agendaHBox" 
     selectListener="#{boxItem.handleAgendaDateChange}" 
     onSelectUpdate="@form"/> 

當我的語言環境不是英語不同,我用selectListener屬性出現問題。

例如,它在locale設置爲西班牙語時發生。 當日歷出現時,它將設置爲當前日期:2011年3月24日。 當我點擊2011年3月25日等其他日子時,正在調用selectListener方法,但我收到的日期是「Thu May 03 00:00:00 CEST 2012」 ,並且議程突然更改爲2012年3月5日。

的selectListener方法是:

public void handleAgendaDateChange(DateSelectEvent event) 
{ 
    System.err.println("handleAgendaDateChange = " + event.getDate()); 
} 

如果我刪除selectListener屬性,日曆正常運作(如入住2011年3月17日選擇),但在這種情況下,我有處理日期更改的問題。

我需要一些代碼,當用戶在日曆控件中選擇一個新的日期並將其傳遞到後端與Ajax請求時,將運行一些代碼。如何在沒有selectListener的情況下做到這一點?

回答

2

看起來p:calendar是錯誤的,如果您使用它與en不同的區域設置(至於list of open issues related to calendar and locale)。

+0

是的,我確定這是一個錯誤,但我怎麼能重現ajax? – 2011-03-24 20:21:46

+1

有一個用於primefaces的'p:ajax'標籤。你可以試試看:'' – 2011-03-24 20:27:18

+0

感謝馬特(特別是對於公開​​問題列表),這很好理解。 – 2011-03-25 18:59:06