Ajax in JSF with selectManyCheckbox

1.5k views Asked by At

I have a datatable and two checkboxes. The content of the datatable is rendered considering which of the checkboxes are selected. I have the following functional code which renders the datable content when pressing the submit button:

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

However, I want to replace the submit button with an ajax call using the f:ajax tag. I tried something like:

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

But the content is not rendered. What am I doing wrong?

Bean:

    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

There are 0 answers