日期:2014-05-16 浏览次数:20440 次
<h:form>
<h:dataTable value="#{myBean.dataList}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Select" />
</f:facet>
<h:selectBooleanCheckbox value="#{myBean.selectedIds[item.id]}" />
</h:column>
...
</h:dataTable>
<h:commandButton value="Get selected items" action="#{myBean.getSelectedItems}" />
</h:form>
public class MyBean ...{
private Map selectedIds = new HashMap();
private List selectedDataList;
public String getSelectedItems() ...{
selectedDataList = new ArrayList();
for (MyData dataItem : dataList) ...{
//如果使用了分页的话这个判断不可少.
if(selectIds.get(dataItem.getId())==null)...{
continue;
}
if (selectedIds.get(dataItem.getId()).booleanValue()) ...{
selectedDataList.add(dataItem);
selectedIds.remove(dataItem.getId()); // 删掉已取的项.
}
}
// 这里加需要处理的代码, 比如批量删除或修改.
return "selected";
}
public Map getSelectedIds() ...{
return selectedIds;
}
public List getSelectedDataList() ...{
return selectedDataList;
}
}