日期日历始终保持价值

时间:2018-10-10 10:16:41

标签: java jsf primefaces

我对素字上的日期有疑问。我有两个日期日历,当我选择第二个日期时,将调用一个方法,当两个日期都为空时,将显示一个列表。当它被填充时,显示另一个列表,问题是当我在将两个日期都清空后同时填写两个日期时,它没有显示任何内容,因此没有将它们视为空白。下面是我的代码:

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;
    }
}

0 个答案:

没有答案