我想得到这个:
<h:form id="form">
<p:dataTable value="#{testBean.allItems}" var="item" selection="#{testBean.category.itemList}" selectionMode="multiple">
<p:column>#{item.name}</p:column>
</p:dataTable>
</h:form>
在哪里
@ManagedBean
public class TestBean
{
private static List<Item> itemDB = new ArrayList<Item>();
static
{
itemDB.add(new Item("zero"));
itemDB.add(new Item("one"));
itemDB.add(new Item("two"));
itemDB.add(new Item("three"));
itemDB.add(new Item("four"));
itemDB.add(new Item("five"));
}
private Category category;
@PostConstruct
public void init()
{
category = new Category();
category.setName("root");
category.getItemList().add(itemDB.get(2));
category.getItemList().add(itemDB.get(3));
}
public List<Item> getAllItems()
{
return itemDB;
}
public Category getCategory()
{
return category;
}
public void setCategory(Category category)
{
this.category = category;
}
}
我认为我的选择是:
- 创建一种从 List 到 Array 的翻译器,反之亦然,但我对让它与 ValueExpressions 一起工作感到头疼......
- 扩展 PrimeFaces DataTable 和 DataTableRenderer 但搞清楚可能真的很痛苦
有更好的主意吗?