2011-03-24 15 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