Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Popular um select One Menu com ENUM

Bom dia a todos, como eu faço para popular um select One Menu passando como parametro meu enum?


public enum TipoMedida {
    COMPARECIMENTO_MENSAL("Comparecimento Mensal em Juízo e na Central de Egressos"),
    PROIBICAO_AUSENTAR("Proibição de ausentar-se da comarca sem autorização"),
    PROIBICAO_CONTATO("Proibido contato com a vítima ou familiares"),
    RECOLHIMENTO_DOMICILIAR("Recolhimento domiciliar, inclusive aos sábados, domingos e feriados, após as 23:00h");

    private String descricao;

    TipoMedida(String descricao) {
        this.descricao = descricao;
    }

    public String getDescricao() {
        return descricao;
    }
}
5 respostas
solução!

Cria um getter retornando todos os valores da enum, no seu managed bean.

public TipoMedida[] getTiposMedia(){
   return TipoMedia.values();
 }

resolvido kkkkkkkkkkk valew

Jilles,

No seu managedBean:

public TipoMedida[] getTipoMedida(){
   return TipoMedida.values();
 }

Na sua página XHTML

<h:selectOneMenu value="#{medidaMB.tipoMedida}" id="tipoMedida">
    <f:selectItem itemLabel="Selecione..." itemValue="" noSelectionOption="true" />
    <f:selectItems value="#{medidaMB.tiposMedida}" />
</h:selectOneMenu>

Isso deve resolver. Qualquer dúvida, só postar!

Abraço.

Meu código ta bem parecido, mas acabei usando o check box olha

<div class="input-field col s12 m12 ">
                                        <h:selectManyCheckbox value="#{medidaCautelarBean.medidaCautelar.tipoMedida}"
                                                              layout="pageDirection">
                                            <f:selectItems value="#{medidaCautelarBean.tipoMedidas}" itemValue="#{tipo}"
                                                           var="tipo" itemLabel="#{tipo.descricao}"/>
                                        </h:selectManyCheckbox>

                                    </div>

e meu bean ta assim:

public TipoMedida[] getTipoMedidas() {
        return TipoMedida.values();
    }

O problema é que estou achando meio estranho o código kkkkkk

Perfeito! O tipo de componente depende do tipo de necessidade. :)

Bons estudos!