Список выбора PrimeFaces

Обязательно ли использовать конвертер при работе с 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


person ImaxFan    schedule 15.06.2013    source источник


Ответы (1)


Ваш список выбора должен указывать на DualListModel... который сам содержит исходный список и целевой список. Поэтому вам нужно создать исходный список и целевой список, а затем создать из них DualListModel, например. взяв пример демонстрации простых лиц:

        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}

Если ваши данные в ваших списках имеют сложный тип, вам нужно будет использовать конвертер для преобразования объекта

person zargarf    schedule 17.06.2013