Hashmap 未显示在 selectOneMenu 上

Hasmap is not being displayed on selectOneMenu

我一直在努力处理由 HashMap 动态填充的 selectOneMenu 一天,但没有成功,而且找不到发生了什么。 按照

上的步骤操作

How to populate options of h:selectOneMenu from database?

但还是没有运气

这是我的豆子:

private Paciente selectedPaciente;
private Map<String, String> itensPacientes; 


@PostConstruct
    public void init() {
        itensPacientes = new LinkedHashMap<String, String>();
        itensPacientes.put("1","teste1");
        itensPacientes.put("2","teste1");
        itensPacientes.put("3","teste1");     
}


public Map<String, String> getItensPacientes() {
        return itensPacientes;
}

public Paciente getSelectedPaciente(){
        return selectedPaciente;
}

public void setSelectedPaciente(Paciente selectedPaciente){
        this.selectedPaciente = selectedPaciente;
}

这是 jsf 部分

    <h:selectOneMenu  value="#{beanAgenda.selectedPaciente}" required="true">   
        <f:selectItem itemValue="#{null}" itemLabel="--select--" />       
        <f:selectItems value="#{beanAgenda.itensPacientes}" 
           itemValue="#{entry.key}" itemLabel="#{entry.value}"/>
    </h:selectOneMenu>

但是当我 运行 代码时,我只能在 combobx 上看到“--select--”选项。 我有没有忽略什么?

提前致谢

试试这个:

<f:selectItems value="#{beanAgenda.itensPacientes.entrySet()}" var="entry" 
       itemValue="#{entry.key}" itemLabel="#{entry.value}"/>

答案和解释来自这个post