我有2个ace:comboBox组件到一个JSF页面中,当我改变combo1的值时,combo2的值必须重置为空。
<ace:comboBox id="combo1" value="#{controller.value1}">
<f:selectItems value="#{controller.values1}" />
<ace:ajax event="valueChange" listener="#{controller.valueChange()}"/>
<ace:ajax event="blur" listener="#{controller.valueChange()}"/>
</ace:comboBox>
<ace:comboBox id="combo2" value="#{controller.value2}">
<f:selectItems value="#{controller.values2}" />
</ace:comboBox>
当我改变combo1的值时,combo2的值必须被重置为空,这是控制器的函数代码。
public void contextChanged() {
String selectedValue1 = getValue1();
if(StringUtils.isNotBlank(selectedValue1)) {
// populate combo2 select items
} else {
setValues2(null);
}
setValue2(null);
}
但是当我改变combo1的值时,combo2的值没有发生任何变化。
解决方法是给combo2添加标签。
<ace:comboBox id="combo2" value="#{controller.value2}">
<f:selectItems value="#{controller.values2}" />
<ace:ajax/>
</ace:comboBox>