Jsf 2 ValueCangeListener在JSF2.0中进行第二次尝试

Jsf 2 ValueCangeListener在JSF2.0中进行第二次尝试,jsf-2,Jsf 2,我有两个selectOneMenu元素,它们的id只起作用。 valueChangeListener在第二次尝试时工作。 在第一次尝试时,页面正在刷新,但没有转到值更改代码,或者没有值更改。在第二次尝试时,它进入valueChangeCode并获得新值,并且两个SelectOne菜单都显示新值 <h:selectOneMenu id="changeCurrency" value="#dataBean.showCurrency}" val

我有两个selectOneMenu元素,它们的id只起作用。 valueChangeListener在第二次尝试时工作。 在第一次尝试时,页面正在刷新,但没有转到值更改代码,或者没有值更改。在第二次尝试时,它进入valueChangeCode并获得新值,并且两个SelectOne菜单都显示新值

            <h:selectOneMenu id="changeCurrency" value="#dataBean.showCurrency}"                valueChangeListener="#myBean.changePaymentCurreny}"
valueChangeListener="#{myBean.changePaymentCurreny}"
                immediate="true"
                onchange="submit()">
                <f:selectItems value="#{my.currencyList}" />
            </h:selectOneMenu>
           <h:selectOneMenu id="changeCurrency2" 
                value="#{dateBean.showCurrency}" 
                valueChangeListener="#{myBean.changePaymentCurreny}"
                immediate="true"
                onchange="submit()">
                <f:selectItems value="#{myBean.currencyList}" />
          </h:selectOneMenu>
当我删除以getChildren.clear结尾的行并更改其中一行的值时,changeListener调用并在第一次尝试时更改该值。 在视图中,只有我更改的一个selectmenu显示新值。其他SelectOne功能表仍显示旧值

dataBean和myBean位于sessionScope中。当我将myBean放在requestscope上时,在页面加载上工作的ajax请求不会导致myBean为null

有人能把这个站说清楚吗。
非常感谢。

尝试为ajax事件标记更改valueChangeListener,如下所示

<h:selectOneMenu id="changeCurrency" value="#dataBean.showCurrency}" valueChangeListener="#myBean.changePaymentCurreny}" onchange="submit()"> 
   <f:selectItems value="#{my.currencyList}" />
   <f:ajax event="change" listener="#{myBean.changePaymentCurreny}" process="@this" partialSubmit="true"  />    
</h:selectOneMenu>

<h:selectOneMenu id="changeCurrency2" value="#{dateBean.showCurrency}" onchange="submit()">
   <f:selectItems value="#{myBean.currencyList}" />
   <f:ajax event="change" listener="#{myBean.changePaymentCurreny}" process="@this" partialSubmit="true"  />  
</h:selectOneMenu>

<h:selectOneMenu id="changeCurrency" value="#dataBean.showCurrency}" valueChangeListener="#myBean.changePaymentCurreny}" onchange="submit()"> 
   <f:selectItems value="#{my.currencyList}" />
   <f:ajax event="change" listener="#{myBean.changePaymentCurreny}" process="@this" partialSubmit="true"  />    
</h:selectOneMenu>

<h:selectOneMenu id="changeCurrency2" value="#{dateBean.showCurrency}" onchange="submit()">
   <f:selectItems value="#{myBean.currencyList}" />
   <f:ajax event="change" listener="#{myBean.changePaymentCurreny}" process="@this" partialSubmit="true"  />  
</h:selectOneMenu>