p:datePicker 空日期的 dateSelect 事件
p:datePicker dateSelect event on empty dates
我有两个 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>
在我的 后端 上,我捕获 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());
}
这工作正常,问题是当我想将对象 filterStartDate
和 filterEndDate
初始化为 null
时。 ajax 事件 dateSelect
当值为空时它永远不会被调用。
如果您查看 "Ajax Behavior Events" section of the p:datePicker
documentation,您会发现唯一明确记录的事件是 dateSelect
。但是有一个注意事项:
In popup mode, DatePicker
also supports regular ajax behavior events like blur, keyup and more.
因此您可以添加一个 Ajax 侦听器并处理所有更改并使用它来处理 null
值。或者只使用 change 事件来处理所有更改,这样可以节省对服务器的额外 Ajax 调用。
我有两个 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>
在我的 后端 上,我捕获 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());
}
这工作正常,问题是当我想将对象 filterStartDate
和 filterEndDate
初始化为 null
时。 ajax 事件 dateSelect
当值为空时它永远不会被调用。
如果您查看 "Ajax Behavior Events" section of the p:datePicker
documentation,您会发现唯一明确记录的事件是 dateSelect
。但是有一个注意事项:
In popup mode,
DatePicker
also supports regular ajax behavior events like blur, keyup and more.
因此您可以添加一个 Ajax 侦听器并处理所有更改并使用它来处理 null
值。或者只使用 change 事件来处理所有更改,这样可以节省对服务器的额外 Ajax 调用。