0

我在我的 jsf 页面中有一个日历,我想在它更改时获得他的值我尝试添加侦听器但没有工作我找到了其他解决方案但不适用于 primefaces 3.5:

   <p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr"  >
<p:ajax listener="#{zp01ManagedBean.setDatedeplanification(zp01ManagedBean.datedeplanification)}"/>   
                </p:calendar>

你知道如何解决这个问题吗?

我正在使用primefaces 3.5

4

5 回答 5

5
  • <p:ajax partialSubmit="true"/>
    与 inputText 一起使用。

  • <p:ajax event="dateSelect"/>
    选择日期时与日历一起使用。

  • <p:ajax event="change"/>
    在输入日期时与日历一起使用。

于 2013-08-11T17:40:38.530 回答
1

不需要通过 ajax 侦听器手动设置值,因为在提交字段值时会隐式调用 setter。您所要做的就是提交更改值。所以试试这个:

<p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr"  >
    <p:ajax process="popupButtonCal22" partialSubmit="true" event="change"/>   
</p:calendar>

如果您还想在值更改后调用操作,您可以添加listener="#{someBean.someAction"p:ajax-tag。

如果您想对旧值和新值进行一些检查,请使用-tag的valueChangeListener-attribute 。p:calendar

于 2013-06-05T20:35:55.973 回答
0

尝试将p:calendar组件放在h:form标签中。我不明白为什么你的代码实际上不起作用,你甚至不需要 ajax...

于 2013-06-05T21:44:17.620 回答
0

试试这个,也许这可以帮助:

<h:body>
    <h:form>
        <p:calendar id="dateObj" value="#{test.date1}" showOn="button" pattern="dd-MMMM-yyyy">
            <p:ajax event="dateSelect" listener="#{test.handleDateSelect}"/>
        </p:calendar>
    </h:form>
</h:body>

豆子是这样的:

private Date date1;
public Date getDate1() {
    return date1;
}

public void setDate1(Date date1) {
    this.date1 = date1;
}


public void handleDateSelect(DateSelectEvent event){

    System.out.println(event.getDate());
}
于 2013-06-06T06:11:08.493 回答
0
<p:calendar ...>
    <p:ajax event="dateSelect" ... />
    <p:ajax event="change" ... />
</p:calendar>

这对我有用。

于 2014-05-07T14:11:45.637 回答