我正在使用primefaces 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 应使用下面的代码片段
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()))); }
在较早的primefaces版本中使用 DateSelectEvent
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"); }