p:没有填充selectonemenu

时间:2014-09-02 22:21:28

标签: jsf

我正在尝试填充p:selectOneMenu,如下所示:

(XHTML)

<p:selectOneMenu id="perfil" value="#{criarContaBean.idPerfil}">
                <f:selectItem itemLabel="Selecione" itemValue=""/>
                <f:selectItems values="#{criarContaBean.perfis}"></f:selectItems>
            </p:selectOneMenu>

豆:

private void carregarPerfis() {
        ControladorPerfil c = new ControladorPerfil();
        List<Perfil> lista = c.consultarPerfis();
        perfis = new HashMap<Long, String>();
        for (Perfil perfil : lista) {
            perfis.put(perfil.getId(), perfil.getDescricao());
        }

    }

public HashMap<Long, String> getPerfis() {
    return perfis;
}

该方法在init方法中调用,但是当我运行我的页面时,只显示selectitem。我错过了什么?

编辑:我发现了问题......它是value="#{criarContaBean.perfis}" ...而不是values ...

感谢帮助人员。

1 个答案:

答案 0 :(得分:0)

BalusC说,你可能有空地图。否则,您尝试将f:selectItemsMap一起使用,而不是Collection

尝试如下:

<f:selectItems value="#{criarContaBean.perfis.entrySet()}" var="data" 
itemValue="#{data.key}" itemLabel="#{data.value}" />