ajax与selectmanymenu无法正常工作

时间:2013-12-09 16:05:22

标签: jsf-2

我正在使用带有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>

1 个答案:

答案 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