Ajax Listener仅在<p:selectonemenu> </p:selectonemenu>的备用选择上调用

时间:2013-04-01 05:48:37

标签: eclipse jsf-2 primefaces glassfish

我正在通过读取数据库然后选择值进行进一步处理来构建下拉列表。问题出现在处理部分中。

下拉列表的ajax侦听器仅在 alternate 选择时触发,而不是在每个选择上触发。如果我第一次选择一个值,则不会触发侦听器。如果我第二次选择它再次触发。第三次,它再次没有触发等等。

<p:selectOneMenu id="selectedBPZero" value="#{selectCriteriaBean.selectedBPZero}" >
    <f:selectItem itemValue="0" itemLabel="Select Option" />
    <f:selectItem itemValue="1" itemLabel="Add New BP" />
    <f:selectItems value="#{selectCriteriaBean.bpZeroList}"/>
    <p:ajax listener="#{selectCriteriaBean.bpZeroListSelectActionByAjaxCall}" event="change" update="selectedBPOne,selectedBPOneTextInfo" process="@this"/>
</p:selectOneMenu> 

监听方法如下

public void bpZeroListSelectActionByAjaxCall() {
    setParentBusinessProcessId(0);
    setSelectedBPOne(0);
    setSelectedBPTwo(0);

    setBPOneListRendered(false);
    setBPTwoListRendered(false);

    setModifyButtonBPZeroRendered(false);       
    setModifyButtonBPOneRendered(false);
    setModifyButtonBPTwoRendered(false);
    if (getSelectedBPZero() == 0) {
        RedirectScreen.redirectToPage("/ALM/home.faces");
    } else {
        if (getSelectedBPZero() == 1) {
            setAddBPLevelNumber(0);
            addBP();                            
        } else {
            setBPOneListRendered(true);
            setModifyButtonBPZeroRendered(true);
            // Get BP List
            bpLevelOneList = bpList(1,getSelectedBusinessProcessLevelZero());
            RedirectScreen.redirectToPage("/ALM/home.faces");       
        }
    }
}

我尝试将事件更改为valueChangeclick,但它不起作用。我正在使用GlassFish设置Eclipse。

我在Rational Application Developer(RAD)中测试过的相同代码,它正在那里工作。

TIA

0 个答案:

没有答案