0

我有一个数据表和两个复选框。数据表的内容是根据选择了哪个复选框来呈现的。我有以下功能代码,它在按下提交按钮时呈现数据内容:

<h:form> 
            <h:selectManyCheckbox value="#{myBean.selections}">
                <f:selectItem itemValue="expired" itemLabel="Expired" />
                <f:selectItem itemValue="active" itemLabel="Active" />                  
            </h:selectManyCheckbox>
            <h:commandButton id="submit" value="Select"
                action="#{myBean.getList}" /> 
</h:form>

<h:form>
            <h:dataTable ... />
</h:form>

但是,我想使用 f:ajax 标记将提交按钮替换为 ajax 调用。我试过类似的东西:

<h:selectManyCheckbox value="#{myBean.selections}">
                <f:selectItem itemValue="expired" itemLabel="Expired" />
                <f:selectItem itemValue="active" itemLabel="Active" />                  
                <f:ajax event="click" render="@form" listener="#{myBean.getList}" />
</h:selectManyCheckbox>
<h:form>
    <h:dataTable .... />
</h:form>

但是内容没有被渲染。我究竟做错了什么?

豆:

    public String[] selections = { "expired", "active" };

public String[] getSelections() {
    return selections;
}

public void setSelections(String[] selections) {
    this.selections = selections;
}

public void getList() {
    for (String option : selections) {
        // add expired
        if (option.equals("expired"))
            showExpired();
        // add active 
        else if (option.equals("active"))
            showActive();
    }
     //return Arrays.toString(selections);
}
4

0 回答 0