1

を使用する場合、コンバーターを使用する必要がありpickListますか? さて、ここに私のコードがあります:

<p:pickList value="#{usuarioBean.listaMembros}" var="#{usuario}" itemLabel="#{usuario.nome}">
  <f:facet name="cadastrados">Membros</f:facet>
  <f:facet name="equipe">Membros da Equipe</f:facet>
</p:pickList>

私が取得し続けるのは次のとおりです。

java.util.ArrayList は org.primefaces.model.DualListModel にキャストできません

4

1 に答える 1

5

選択リストは、ソース リストとターゲット リストを含む DualListModel を指す必要があります。したがって、ソース リストとターゲット リストを作成し、それらから DualListModel を作成する必要があります。たとえば、primefaces ショーケースの例を取り上げます。

        List<Player> source = new ArrayList<Player>();  
        List<Player> target = new ArrayList<Player>();  

        source.add(new Player("Messi", 10, "messi.jpg"));  
        source.add(new Player("Iniesta", 8, "iniesta.jpg"));  
        source.add(new Player("Villa", 7, "villa.jpg"));  
        source.add(new Player("Alves", 2, "alves.jpg"));  
        source.add(new Player("Xavi", 6, "xavi.jpg"));  
        source.add(new Player("Puyol", 5, "puyol.jpg"));      

        listaMembros = new DualListModel<Player>(source, target);  

次に、ゲッターとセッターが DualListModel を取得して設定します...例

public DualListModel<Player> getListaMembros() {  
        return listaMembros;  
    }  
    public void setPlayers(DualListModel<Player> players) {  
        this.listaMembros = listaMembros;  
    } 

次に、xhtml で選択リストの値は次のようになります。

#{usarioBean.listaMembros}

リスト内のデータが複合型の場合は、コンバーターを使用してオブジェクトを変換する必要があります

于 2013-06-17T08:21:17.320 に答える