PrimeFaces pickList

1 exception primefaces picklist

使用时是否需要使用转换器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>
Run Code Online (Sandbox Code Playgroud)

我一直得到的是:

java.util.ArrayList无法强制转换为org.primefaces.model.DualListModel

小智 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);  
Run Code Online (Sandbox Code Playgroud)

然后你的getter和setter将获得并设置一个DualListModel ......例如

public DualListModel<Player> getListaMembros() {  
        return listaMembros;  
    }  
    public void setPlayers(DualListModel<Player> players) {  
        this.listaMembros = listaMembros;  
    } 
Run Code Online (Sandbox Code Playgroud)

然后在你的xhtml中,你的选项列表的价值将是

#{usarioBean.listaMembros}

如果列表中的数据是复杂类型,则需要使用转换器来转换对象