我正在使用带有ajax的selectmanymenu标签但是没有调用listner。相同的代码适用于selectonemenu而没有event =“change”。如果我做错了,请建议我
这是代码
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
</h:head>
<h:body>
<h:form>
<h:selectManyMenu id="dropDownValue"
value="#{loginBean.dropDownValue}" style="height:100px; width:100px;">
<f:selectItem itemValue="****select***" />
<f:selectItems value="#{loginBean.testDropDown}" />
<f:ajax render="testDropDownTwo"
listener="#{loginBean.changeDropDownOne}" event="change" />
</h:selectManyMenu>
<h:selectManyMenu id="testDropDownTwo"
value="#{loginBean.dropDownTwoValue}"
style="height:100px; width:100px;">
<f:selectItem itemValue="****select***" />
<f:selectItems value="#{loginBean.testDropDownTwo}" />
</h:selectManyMenu>
</h:form>
</h:body>
</html>
答案 0 :(得分:0)
你的代码对我来说没问题,你应该提供你的支持bean。
但是,我尝试了您的代码,您可以查看:
(Page与你的完全相同)
支持Bean:
private List<String> dropDownValue = new ArrayList<>();
private List<String> dropDownTwoValue = new ArrayList<>();
private List<String> testDropDown = new ArrayList<>();
private List<String> testDropDownTwo = new ArrayList<>();
@PostConstruct
public void init() {
testDropDown.add("a");
testDropDown.add("b");
testDropDown.add("c");
}
public void changeDropDownOne() {
testDropDownTwo.clear();
for(String str:dropDownValue)
for(int i=0;i<3;i++)
testDropDownTwo.add(str+i);
}
//simply getters and setters below