Eu estou usando o selectOeMenu do primefaces em uma tela de cadastro. O selectOneMenu carrega os dados que devem aparecer e opção escolhida é armazenada no Banco de dados e tudo mais.
O meu problema é na hora de alterar os dados, pois na tela de alteração todos os dados são carregados , porém o selectOneMenu não aparece com a opção que o usuário escolheu(ela aparece com o conjunto de opçoes mas não está selecionada a opcao que o usario escolheu).
[color=red]Há alguma forma de deixar o SelecOneMenu mostrando o dado que o usuário escolheu?[/color]
Se em “Valor:” estiver aparecendo como o esperado , creio que o seu problema pode ser equals/hashcode.
Você implementou equals e hashcode da sua entidade?
A lista com as opções aparece … mas não com a opção que o usuário escolheu selecionada…a opção que o usuario esolheu está na lista que aparece mas ela não aparece como selecionada…entenderam?
E
ErickRAR
Tente tirando isso:
<f:selectItem itemLabel="Nenhum" itemValue=""/>
T
ThaisGomes
Já tentei tirar e nada… DD:
R
rock
eu entendi sim, por isso perguntei se vc implementou o equals e o hashcode na sua entidade departamento?
eles são utilizados pelo componente jsf para verificar se o item está na lista.
Se tiver, veja se no código não tem um “getClassName()”, pois não funcionará nos casos que o hibernate utilizar um proxy.
T
ThaisGomes
Rockkkk!!!
Faltava eu implementar o equals e o hashcode (pensei que já tinha feito isso ¬¬")…
Obrigada
R
rock
Por nada!
verifique também se tem algo parecido com isto:
if (obj.getClass() != getClass()) {
return false;
}
Se você gerou com o Eclipse, é provável que tenha.
Se tiver, utilize o instanceof no lugar. Se não você pode cair no mesmo problema.
Será pior para descobrir o erro porque haverá equals e hashcode, mas eles não estarão funcionando quando um dos objetos for um proxy do hibernate.
Sugiro que já faça esse ajuste/revisão em todas as suas entidades, mesmo que esteja funcionando :!: