Primefaces Calender日期比较仅适用于同一个月

时间:2018-01-15 12:25:44

标签: date jsf primefaces calendar comparison

我有两个日历。用户不应该在日历1中的日期之前选择日历2中的日期。此外,如果日历选择一个在日历2之后的值,则日历2应自动更改为与日历1相同的日期。

这是index.html。 “vom”是日历1,“bis”是日历2。

<p:calendar id="vom" value="#{IndexBean.vom}" maxlength="50"
                        navigator="true" pattern="dd.mm.yyyy" locale="de" mask="true" >
                         <f:ajax event="dateSelect" execute="vom" listener="#{IndexBean.dateChanger}" render="vom bis" />
                         </p:calendar>
                        <p:calendar id="bis" value="#{IndexBean.bis}" maxlength="50"
                        navigator="true" pattern="dd.mm.yyyy" locale="de" mask="true" mindate="#{IndexBean.vom}">
                         <f:ajax event="dateSelect" execute="bis" listener="#{IndexBean.dateChanger}" render="vom bis"/>
                        </p:calendar>

这是dateChanger方法

 public void dateChanger() {

try {
  if (bis.before(vom)) {
    bis = (Date) vom.clone();
  }

} catch (Exception e) {
}

}

问题是一切正常,因为两个日历都在同一个月。我调试了dateChanger,我真的很困惑来自日历的值。它似乎并不依赖于浏览器。日期的类型是java.util.date。

为什么会发生这种情况的任何线索?

Java 1.8 JSF 2.2.14

1 个答案:

答案 0 :(得分:0)

你使用了错误的模式。在

@Entity(tableName = "Books_To_Read")

pattern="dd.mm.yyyy" 表示'分钟'而不是'月'。月份为“MM”,因此将其更改为

mm