4
respostas

Lista de Strings em um <h:selectOneMenu>

Talvez o melhor tópico que se encaixe essa dúvida seria no curso de JSF. Como estou perguntando a respeito de melhores práticas, imaginei que aqui também se adequaria.

Vamos lá: gostaria de representar, em um <h:selectOneMenu> uma lista de Strings, que são estáticas, para gravar como um atributo de uma entidade no banco de dados.

Por exemplo: tenho uma classe chamada Usuário. Esse usuário possui um atributo String, chamado unidadeFederativa. Quando for cadastrar um usuário, quero que na página seja exibido um <h:selectOneMenu> com a sigla de todos os estados, e que se possa selecionar um para cadastrar como a unidadeFederativa.

Qual a melhor abordagem para fazê-lo? Tenho dúvida pois imagino a quem essa List de estados pertence, já que é um padrão da página, e, a princípio, não pertence a nenhuma das classes.

4 respostas

Acho que eu teria uma enum com os estados, que eh como faco mesmo, e colocaria essa enum no xhtml.

Hmmm verdade, mas e se fosse um conteúdo maior que os estados? Vamos supor, um conjunto de referências (ainda Strings) a uma compra, tal como "Comprado", "Financiado", "Compra Cancelada", "Pendente de Aprovação". Ainda utilizaria o ENUM, demonstrando os valores no xhtml em caixa alta?

Tambem usaria enum.. quer dizer, usaria nao, uso! So gravaria no banco se realmente fosse dinamico ou se tivesse muitas entradas.. lista de cidades dos estados... ai nao daria para criar essa enum :P.

Tenho como utilizar espaço normalmente na definição dos enums?

Por exemplo:

Enum status{
Compra Cancelada, Comprado, Financiado
}

Quero dizer, quero demonstrar no meu <h:selectOneMenu> textos que possam ter caracteres especiais, como acentuação. Com enum isso não é possível, certo?