Primefaces Calendar <f:ajax>和<p:ajax> issue </p:ajax> </f:ajax>

时间:2011-12-01 15:42:20

标签: ajax jsf primefaces

我目前正面临使用primefaces Calendar control

的问题

我的要求是在输入框或使用按钮更改Calendar控件值时调用java方法,并将一组参数(Java对象和字段id)传递给java方法。

下面是我已实现的代码,但它无法正常工作

<p:calendar showOn="button" id="effectiveDt" navigator="true" pattern="MM/dd/yyyy" 
    styleClass="overrideable" value="#{coverage.startDate}">
    <f:ajax event="change" render="hiddenStartDt" onevent="myEvent" listener="#{certInquiry.ovrrrideListener}"/> 
        <f:attribute name="covg" value="#{coverage}" />
        <f:attribute name="field" value="StartDate" />
</p:calendar>

这里 myEvent 是一个java脚本方法,将在ajax完成后调用,我将检查ajax状态是否成功并执行某些操作。

java方法的方法签名是。

* public void overrideListener(AjaxBehaviorEvent e)*

我试过各种各样的方法签名,如

public overrideListener(ValueChangeEvent e)
 public overrideListener(ActionEvent e)
 public ovrrrideListener(DateSelectEvent event)

没有什么对我有用

我尝试过使用即使这不起作用 如果方法被调用但我没有调用方法

,我也尝试使用valueChangeListener

这适用于使用

的字段
<h:selectBooleanCheckbox class="overrideable" 
                    value="#{coverage.clIndicator}">
    <f:ajax event="change" render="hidgenLiabClaimsMdInd" onevent="myEvent" listener="#{certInquiry.overrideListener}"/> 
                    <f:attribute name="covg" value="#{coverage}" />
                    <f:attribute name="field" value="ClIndicator" />
</h:selectBooleanCheckbox>

<h:inputText id="genLiabEachOccAmt" value="#{coverage.eachOccAmt}"
            class="amt_field overrideable">
    <f:ajax event="change" render="hidgenLiabEachOccAmt" onevent="myEvent" listener="#{certInquiry.overrideListener}"/> 
            <f:attribute name="covg" value="#{coverage}" />
            <f:attribute name="field" value="EachOccAmt" />
</h:inputText>

请帮我解决日历组件的这个问题。

1 个答案:

答案 0 :(得分:1)

制作ajax event="dateSelect",当您使用ovrrrideListener(DateSelectEvent event)时,您应该在BB中获取日期值。