Prezados…
faz varios dias já que estou tentando retornar o valor do meu selectmenu selecionado mas não consigo… ja segui todos os exemplos do Guj que fala a respeito mas não vai de jeito nenhum. Ja fiz inclusive o exemplo do http://www.rponte.com.br/ mas não vai de jeito algum.
Vou postar meus codigos e ficarei grato se me ajudarem a encontrar onde é minha falha.
O erro gerado no console quando tento pegar o valor selecionado no combo é:
Feb 19, 2011 4:06:32 PM com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_1785323535_1:j_id_jsp_1785323535_4[severity=(ERROR 2), summary=(Conversion Error setting value ‘’ for ‘null Converter’. ), detail=(Conversion Error setting value ‘’ for ‘null Converter’. )]
Depois de tanto tempo perdido da até raiva ver que era isso… mas é isso ai…
Mais uma vez, obrigado
R
raf4ever
Entendeu o motivo?
B
betocamargo
Prezado raf4ever,
Eu vi que mudou de int pra Long, mas sou sincero pra dizer que o por quê ainda não descobri.
abraço
R
raf4ever
betocamargo:
Prezado raf4ever,
Eu vi que mudou de int pra Long, mas sou sincero pra dizer que o por quê ainda não descobri.
abraço
A mudança de int para Long é apenas uma boa prática e não impactou na solução.
A explicação é a seguinte:
Quando vc tem um List<SelectItem>,é obrigatório que o valor escolhido no <h:selectOneMenu> seja do mesmo tipo do List.
Portanto,se eu tenho:
List<SelectItem> lista = new SelectItem(new Long(1), teste.getNome());
O primeiro argumento do SelectItem indica o tipo de dado que deve ser recuperado,no caso será um Long.
Portanto,para recuperar na view deve estar da seguinte forma:
<h:selectOneMenu value="#{bean.selecionado}">