Jsf p:datePicker dateSelect空日期事件
我有两个Jsf p:datePicker dateSelect空日期事件,jsf,primefaces,datepicker,Jsf,Primefaces,Datepicker,我有两个p:datePicker,它们工作正常: <p:outputLabel for="filterStartDate" value="Start Date:" /> <p:datePicker id="filterStartDate" value="#{historyController.filterStartDate}" timeOnly="true" pattern="HH:mm" converter="#{localTimeConverter}"> &l
p:datePicker
,它们工作正常:
<p:outputLabel for="filterStartDate" value="Start Date:" />
<p:datePicker id="filterStartDate" value="#{historyController.filterStartDate}" timeOnly="true" pattern="HH:mm" converter="#{localTimeConverter}">
<p:ajax event="dateSelect" listener="#{historyController.filterStartDateSelect}"/>
</p:datePicker>
<p:outputLabel for="filterEndDate" value="End Date:" />
<p:datePicker id="filterEndDate" value="#{historyController.filterEndDate}" timeOnly="true" pattern="HH:mm" converter="#{localTimeConverter}">
<p:ajax event="dateSelect" listener="#{historyController.filterEndDateSelect}"/>
</p:datePicker>
这很好,问题是当我想将对象filterStartDate
和filterEndDate
初始化为null
时。ajax事件dateSelect
当值为空时,它从未被调用。如果查看,您将看到唯一明确记录的事件是dateSelect
。但有一点值得注意:
在弹出模式下,DatePicker
还支持常规的ajax行为事件,如blur、keyup等
因此,您可以添加一个Ajax侦听器并处理所有更改,并使用它来处理null
值。或者只使用更改事件来处理所有更改,这样可以节省对服务器进行的额外Ajax调用。如果查看,您将看到唯一明确记录的事件是dateSelect
。但有一点值得注意:
在弹出模式下,DatePicker
还支持常规的ajax行为事件,如blur、keyup等
因此,您可以添加一个Ajax侦听器并处理所有更改,并使用它来处理null
值。或者只使用change事件来处理所有更改,这样可以节省对服务器的额外Ajax调用
private LocalTime filterStartDate;
private LocalTime filterEndDate;
public void filterStartDateSelect(SelectEvent event) {
filterStartDate = ((LocalTime) event.getObject());
}
public void filterEndDateSelect(SelectEvent event) {
filterEndDate = ((LocalTime) event.getObject());
}