使用selectManyCheckbox在JSF中使用Ajax

时间:2014-01-04 13:19:44

标签: ajax jsf jsf-2 javabeans selectmanycheckbox

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

<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);
}

0 个答案:

没有答案