Pessoal estou tentando criar uma comboBox usando o selectOneMenu do iceFaces. No caso seria uma combo de objetos que eu crio dentro de um array de selectItem:
pojos = new ArrayList<SelectItem>();
pojos.add(new SelectItem(new Pojo("a", 1),"a"));
...
Na tela:
<ice:selectOneMenu value="#{bean.pojo}">
<f:selectItems value="#{bean.pojos}" />
</ice:selectOneMenu>
A variavel pojo era do tipo Pojo mesmo (Classe Pojo), mas sempre dava erro, ai troquei para Object e vi que é uma String que é setada. Além disto ocorre que o valor da String é nomeDaClasse+@+valorDoHash.
Até li que tem que sobreescrever hash e equals no meu Pojo, mas mesmo assim não entendo pq ele adiciona o hash, que PODE REPETIR e nunca chama o equals. Além disto, no final das contas eu queria um tipo Pojo
e não uma String… Até saquei que posso criar um converter, procurar na lista o pojo com aquele hash, mas além de não ser necessariamente apenas um, ficar criando converters me parece trabalho demais. Creio que tenha sim como fazer, apenas estou errando em algo.
Resumindo, gostaria de criar uma comboBox (selectOneMenu) de objetos e não de pares id/descrição, pois quero já recuperar o objeto selecionado no managedBean. Qual seria a forma mais simples?
Obrigado