mru*_*ker 21 ajax primefaces jsf-2
我正在使用primefaces 3.2和JSF 2.0
我的方案是我的表单中有文件日期,上次日期和下一个日期.当用户输入文件日期时,我需要更新bean中的文件日期值,因此它的值可以用作属性mindate的最后日期的最小日期,因此在下一个日期选择中也是如此.
根据我的知识值,更改侦听器可以在表单提交时执行,因此我无法使用它.我用过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>
Run Code Online (Sandbox Code Playgroud)
CaseUitility.java
public void dateChange(ActionEvent ae) {
System.out.println("File Date: " + caseMaster.getFileDate());
System.out.println("Hello... I am in DateChange");
}
Run Code Online (Sandbox Code Playgroud)
谁可以指导我在这里做错了什么?
Dan*_*iel 37
在最新版本的PrimeFaces中,SelectEvent
应该使用以下代码片段
<p:calendar id="event" value="#{calendarView.date4}">
<p:ajax event="dateSelect" listener="#{calendarView.onDateSelect}" update="msgs" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
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())));
}
Run Code Online (Sandbox Code Playgroud)
在较旧的primefaces版本中使用 DateSelectEvent
<p:ajax event="dateSelect" listener="#{caseUitility.dateChange}"/>
Run Code Online (Sandbox Code Playgroud)
public void dateChange(DateSelectEvent event) {
Date date = event.getDate();
System.out.println("File Date: " + date);
System.out.println("Hello... I am in DateChange");
}
Run Code Online (Sandbox Code Playgroud)
roe*_*oel 18
您应该为p:ajax添加更新.使用datepicker选择日期时以及在字段中手动输入日期时遇到问题.变更事件未被双向触发.因此我使用了p:ajax和af:ajax,它们具有不同的事件.
<p:calendar value="#{caseUitility.caseMaster.fileDate}" id="fileDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true">
<p:ajax event="dateSelect" listener="#{caseUitility.dateSelect}" update="lastDate"/>
<f:ajax event="change" execute="@this" render="lastDate" listener="#{caseUitility.dateChange}"/>
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
而在豆
public void dateSelect(DateSelectEvent event) {
caseMaster.setFileDate(event.getDate());
System.out.println("File Date: " + caseMaster.getFileDate());
System.out.println("Hello... I am in DateChange");
}
public void dateChange(AjaxBehaviorEvent event) throws MWSException {
System.out.println("File Date: " + caseMaster.getFileDate());
System.out.println("Hello... I am in DateChange");
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
归档时间: |
|
查看次数: |
49665 次 |
最近记录: |