Lista + JSF + id

1 resposta
mvargens

Bom, to com um problema meio chato. Esses de aprendiz mesmo. Tenho uma tela simples. Ela tem um campo texto, um botão buscar, um option button(poderia ser um combo) com a opção “por descrição” e “Todos” e uma lista que mostra os resultados da busca. Nesse resultado uma das colunas possui um link e desse link se chama uma outra página que vai ter os dados para alteração.
Simples. E até consegui fazer funcionar. Mas o escopo do MB estava como session. Como não faz sentido ter um MB na session se ele trabalha só com as requisições, mudei o escopo para request. Pronto, parou de funcionar. Quando clica no link a pagina submete e volta sem a lista e sem passar por nenhum método do MB.

Li em algum dos lugares que pesquisei que o motivo é a lista não estar carregada. Mas no link eu passo id como parametro para o MB. Que q tem a ver a lista nesse momento?
Enfim, alguém pode me explicar o que está acontecendo? Estou usando JSF puro, mas no log do tomcat mostra:
[size=12][color=red]INFO: Initializing Mojarra (1.2_08-b06-FCS)[/color][/size], a implementação padrão da SUN certo?
Valew.

1 Resposta

mvargens

Bom, não sei se é a solução mais correta, mas consegui resolver depois de procurar muito.
Precisa usar um framework que salve o estado da lista, porque não funciona mesmo no scope request.
No meu caso usei o Tomahawk com Myfaces da apache. Usei mais porque estou estudando a montagem de menus com ele do que por preferência. Existem outros inclusive Ajax.

<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
....
<t:saveState value="#{clienteMB.lista}"/> //lista é um List<Cliente> no MB
<h:dataTable rendered="#{! empty clienteMB.lista}" value="#{clienteMB.lista}" var="clientes">

Bom, ninguém respondeu mas pelo menos ninguém veio aqui dizer para procurar no google :x . Menos mal.
Por isso estou postando a solução para economizar um bom tempo de quem esta apanhando com jsf.

Criado 1 de outubro de 2009
Ultima resposta 3 de out. de 2009
Respostas 1
Participantes 1