1

私はこれを取得したい:

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

私の選択肢は次のとおりです。

  1. リストから配列へ、またはその逆への一種のトランスレータを作成しますが、ValueExpressionsで機能させることについて頭を悩ませています...
  2. PrimeFaces DataTable と DataTableRenderer を拡張しますが、理解するのは本当に面倒です

より良いアイデアはありますか?

4

3 に答える 3

0

Collections-APIには、この場合の比較的単純なメソッドがいくつかあります。

Item[] itemArr = itemDB.toArray(new Item[0]);

itemDB = Arrays.asList(itemArr);
于 2012-07-17T13:30:56.140 に答える
0

私はDataTable自分のクラスで素数を拡張しました。

于 2012-08-12T00:24:11.080 に答える