dateSelect事件未在p:calendar

时间:2016-03-31 19:13:50

标签: ajax jsf primefaces

我一直试图解决这个问题,但我无法解决这个问题。问题是我有一个日历,当用户在弹出日历中选择一个日期时,就会触发dateSelect事件,但是从不执行监听器。从我的角度来看,语法是正确的。

form.xhtml日历代码。

                        <p:calendar value="#{travel.departureDate}" required="true"
                            id="departureDate" pattern="MM/dd/yyyy HH:mm:ss"
                            onfocus="$('#ui-datepicker-div td').unbind();" readonly="true">
                            <p:ajax event="dateSelect" actionListener="#{travelControl.alterDate}"
                            update=":main-form:departureDate" />
                        </p:calendar>

所有内容都在一个表单和一个panelGrid容器中。

bean方法如下。

public void alterDate(SelectEvent event) {
    System.out.println("Hour [Pre] "
            + travel.getDepartureDate().toString()); //debug

    travel.setDepartureDate((Date) event.getObject());

    System.out.println("Hour [Post] "
            + travel.getDepartureDate().toString()); //debug
}

选择日期后,文本字段的值会暂时更改,然后重置为bean中的值,因为事件没有被正确触发而没有更改。

1 个答案:

答案 0 :(得分:1)

使用listener而不是actionListener:

listener ="#{travelControl.alterDate}"