我有一个SelectOneChoice,其中包含一个通过ManagedBean填充的SelectItem列表。该SOC具有一个ValueChangeListener,可以触发BackingBean中的某些操作。 问题在于,有时会触发ValueChangeListener,而有时不会触发。更进一步,当ValueChangeListener恢复工作时,有时它没有将正确的数据发送到侦听器。
使用JDev 11g R1(11.1.1.7.0)。
我的SelectOneChoice:
<af:selectOneChoice label="Change budget code" id="socChangeBudgetCode"
valueChangeListener="#{backingBeanScope.BudgetBean.changeBudgetCode}"
autoSubmit="true"
disabled="#{NewBudgetBean.itemCount <= 1}"
value="#{bindings.budgetNum.inputValue}">
<f:selectItems value="#{NewBudgetBean.items}" id="si1"/>
</af:selectOneChoice>
我的ValueChangeListener:
public void changeBudgetCode(ValueChangeEvent vce) {
System.out.println("BudgetBean.changeBudgetCode(); old = " + vce.getOldValue() + "; new = " + vce.getNewValue());
budgetNum = (String)vce.getNewValue(); // budgetNum is a member in BudgetBean
callBudjectDetailsWS(); // callBudjectDetailsWS uses the value in budgetNum and call a webservice to do some work
}