我使用的是3.2和JSF 2.0
我的方案是我的形式的文件日期,最后日期和下一个日期.
当用户输入文件日期时,我需要更新bean中的文件日期值,所以它的值可以用作属性心态的最后日期,因此在下一个日期选择中.
根据我的知识价值变化监听器可以在表单提交中执行,所以我不能使用它.我用过p:ajax.但是我仍然无法设置文件日期.由于文件日期未设置,用户可以选择文件日期之前的最后日期和下一个日期.
caseMaster.xhtml
<p:calendar value="#{caseUitility.caseMaster.fileDate}" id="fileDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true"> <p:ajax event="change" listener="#{caseUitility.dateChange}"/> </p:calendar> <p:calendar value="#{caseUitility.caseMaster.lastDate}" required="true" id="lastDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true" mindate="#{caseUitility.caseMaster.fileDate}" > </p:calendar>
CaseUitility.java
public void dateChange(ActionEvent ae) { System.out.println("File Date: " + caseMaster.getFileDate()); System.out.println("Hello... I am in DateChange"); }
可以指导我这里做错了什么吗?
在最新版本的PrimeFaces中,应该使用SelectEvent作为以下代码段
<p:calendar id="event" value="#{calendarView.date4}"> <p:ajax event="dateSelect" listener="#{calendarView.onDateSelect}" update="msgs" /> </p:calendar>
public void onDateSelect(SelectEvent event) { FacesContext facesContext = FacesContext.getCurrentInstance(); SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); facesContext.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Date Selected",format.format(event.getObject()))); }
在旧版本的版本中,使用DateSelectEvent
<p:ajax event="dateSelect" listener="#{caseUitility.dateChange}"/>
public void dateChange(DateSelectEvent event) { Date date = event.getDate(); System.out.println("File Date: " + date); System.out.println("Hello... I am in DateChange"); }