我对素字上的日期有疑问。我有两个日期日历,当我选择第二个日期时,将调用一个方法,当两个日期都为空时,将显示一个列表。当它被填充时,显示另一个列表,问题是当我在将两个日期都清空后同时填写两个日期时,它没有显示任何内容,因此没有将它们视为空白。下面是我的代码:
JSF
<h:form id="form">
<p:outputLabel for="startDate1" value="De:" />
<p:calendar id="startDate1" value="#{instanceController.startDate1}"
pattern="dd-MM-yyyy"
locale="#{navigationController.locale}">
<p:ajax event="dateSelect" update="endDate1" />
</p:calendar>
<p:outputLabel for="endDate1" value="A:" />
<p:calendar id="endDate1" value="#{instanceController.endDate1}"
mindate="#{instanceController.startDate1}"
pattern="dd-MM-yyyy"
locale="#{navigationController.locale}">
<p:ajax update="@(.dataTableDAC)" listener="#
{instanceController.procListDate()}" event="dateSelect" />
<p:ajax event="change" update="startDate1"></p:ajax>
<p:ajax event="dateSelect" update="endDate1" />
</p:calendar>
</h:form>
JAVA
public List<ProcessInstance> procListDate() throws ParseException {
DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
List<ProcessInstance> procInstList= activitiService.getProcInstList();
List<ProcessInstance> procInstListDate=new ArrayList<>();
if(startDate1==null || endDate1==null ) {
return procInstList;
} else {
for (int i = 0; i < procInstList.size(); i++) {
ProcessInstance procIns = procInstList.get(i);
String dateProcInst = getVariableProcess(procIns, "form_1448539361458");
if (!dateProcInst.equals("null")) {
Date dateDa = format.parse(dateProcInst);
if (dateDa.compareTo(startDate1) > 0 && dateDa.compareTo(endDate1) < 0) {
procInstListDate.add(procIns);
}
}
}
return procInstListDate;
}
}