JSF ajax将旧值赋给bean属性

时间:2014-07-05 08:06:53

标签: ajax jsf jsf-2 primefaces

我正在使用JSF2.2和PrimeFaces 5, 我试图在用户选择日期后立即将p:日历的值分配给另一个p:日历, 这是xhtml的一部分:

<p:calendar id="date1" value="#{form.date1}" pattern="MM/dd/yyyy" mask="true">
       <f:ajax event="select" execute="date1" render="date2"/>
</p:calendar>

<p:calendar id="date2" value="#{form.date2}" pattern="MM/dd/yyyy" mask="true"/>

这是我的bean的一部分:

public void setDate1(Date date1){
        this.date1 = date1;
        this.date2 = this.date1;//plus some more time
}

这里唯一的问题是,date2总是落后一步,date2没有得到date1的最后一个版本,它总是采用较旧的date值!

为什么会发生这种情况,如何解决?

1 个答案:

答案 0 :(得分:2)

适用于Primefaces 4:

<p:ajax event="dateSelect" listener="#{testBean.updateDate2}" update="date2"/>

使用TestBean

private Date date1;
private Date date2;

public void updateDate2() {
    date2 = date1;
}
// + getters/setters

你的bean真的被命名为#34;形式&#34;?我相信你不应该像你一样滥用逻辑的设定者。