[JSF] Como se comporta um selectOneMenu  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
diego_arruda
Thread.start()
[Avatar]

Membro desde: 10/05/2005 17:55:54
Mensagens: 31
Offline

Olá pessoal, eu estou estudando JSF e estou com algumas dificuldades. Eu li algumas referências de JSF, mas não encontrei nada falando a respeito do comportamento dos componentes (agradeço quem indicar alguma referência).

Pois bem, meu problema está na submissão de um formulário que contém uma combobox (selectOneMenu), utilizando o escopo "request".

Na hora da submissão, o JSF tenta recarregar novamente o combobox (pra quê?), mas os atributos estão null, então dá um erro pois minha lista é conseguida através de outro componente. Na entrada não dá erro, pois a página que submeteu envia esse atributo, e por isso consigo capturar a lista.

Consigo resolver esse problema utilizando o escopo "session" ou manualmente fazer o controle de exibição com a propriedade "rendered", mas não queria fazer destes modos pois acho que tem uma maneira mais fácil de fazer. Quero saber mesmo é o por quê a página tenta preencher novamente o combobox já que estou saindo dela e o mesmo não irá ser exibido.

abaixo está trechos do meu código para facilitar o entendimento, qualquer dúvida e esclarecimentos, é só perguntar.

Página JSP que irá ser exibido o combo


Métodos e atributos do meu bean


faces-config.xml
afamorim
JavaEvangelist
[Avatar]

Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline

Meu velho, não estou com o codigo aqui, mais vc poder fazer de duas maneiras.

Procure a tag saveState, vc salva o state dos 2 combos.
Outra maneira é vc no seu metodo que faz com que a pagian de refresh trate para que os combos venham preechidos como estavm anteriormente.

o savestate vc vai ter que usar para utilizar paginação do dataTable.

se vc não quer ficar alegre, problema seu a vida segue!
[Email]
diego_arruda
Thread.start()
[Avatar]

Membro desde: 10/05/2005 17:55:54
Mensagens: 31
Offline

obrigado afamorim, o savestate funcionou como uma luva.

Pois bem, fica ainda a dúvida quanto ao comportamento do componente, vi que ao salvar o estado da combobox, ela é armazenada em algum lugar (seja na session ou num campo hidden) e depois repopulada no submit.

Não endendi direito a solução 2, poderia explicar melhor? No meu método, antes mesmo de entrar nele o jsf tenta repopular a combo, queria saber o por quê já que não estou dando um refresh na tela e sim um submit. Se estivesse utilizando um actionListener tudo bem, mas é uma action, a página será redirecionada.

Como trataria isso, sobrepondo algum método da UIComponent?

Obrigado
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team