使用selectbooleancheckbox的jsf数据表

时间:2014-03-07 10:55:29

标签: jsf datatable submit

我有以下代码: JSF PAGE

<h:dataTablevalue="#{bean.records}" var="app">
  <h:column>
    <h:selectBooleanCheckbox value="#{bean.checked[app.id]}"/>
    <f:facet name="footer">
      <h:commandButton value="submit" action="#{bean.submitPublic}"/>
    </f:facet>
</h:column>

和BEAN代码:

@SessionScoped
public class bean 

private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();
private List<Application> checkedItems = new ArrayList<Application>();

public void submit() {

for (Application app : getRecords()) {
    if (checked.get(app.getId())) {
        checkedItems.add(app);
    }
}
checked.clear();
//here logic for selected apps
}

    public Map<Long, Boolean> getChecked() {
        return checked;
    }
    public void setChecked(Map<Long, Boolean> checked) {
        this.checked = checked;
    }

问题是当我点击按钮时,没有提交选定的值。 我正在读这篇文章: How to use <h:selectBooleanCheckbox> in <h:dataTable> to select multiple rows?

以同样的方式做了一切,但它不起作用。

1 个答案:

答案 0 :(得分:1)

选择Checkbox时更新数据表。

<h:selectBooleanCheckbox value="#{bean.checked[app.id]}">
    <f:ajax event="valueChange" render=":YOUR_FORM_ID:YOUR_TABLE_ID"/>
</h:selectBooleanCheckbox>