Problemas com Datatable Primefaces e @ViewScoped

2 respostas
C

Boa tarde

Estou utilizando o p:dataTable do primefaces para fazer um grid com recursos de filtros e paginação, neste grid tenho um botão de alterar que consulta o banco e faz o redirecionamento para a tela de form, o problema é que com o @ViewScoped que padrão para os componentes do primefaces a cada nova solicitação ao servidor este managed bean é recriado, assim meu form aparece sem os dados preenchidos, segue o código:

<p:dataTable var="operadora" 
		    			 value="#{operadoraBean.list}" 
		    			 paginator="true" 
		    			 rows="5"
		                 rowsPerPageTemplate="5,10,15"
		                 id="gridOperadora" 
		                 lazy="true">
<p:commandButton value="Alterar" id="buttonAlterar" action="form">
		            	  <f:setPropertyActionListener value="#{operadora}" target="#{operadoraBean.operadora}" />
		            </p:commandButton>

Para tentar solucionar mudei o scope do ManagedBean para @RequestScoped, mas dessa forma o primefaces não funciona corretamente, alguém já conseguiu solucionar este problema ???

Obrigado.

2 Respostas

Hebert_Coelho

O ViewScoped é ideal para se utilizar Dialogs para edições e outras coisas.

Ou você utiliza SessionScoped ou você utiliza Lazy e passa o Parâmetro na unha.

C

Boa noite

Valeu por responder, também pensei em usar @SessionScoped mas acho que não seria uma opção legal nesse caso, e passar os parametros na unha para o formulários pequenos pode até ser uma boa mas para grandes cadastros pode complicar, estou pensando em criar um Managed Bean separado para alteração e definir como @RequestScoped, assim conseguiria manter o estado do objeto que irei alterar no formulário.

Falou.

Criado 19 de agosto de 2012
Ultima resposta 19 de ago. de 2012
Respostas 2
Participantes 2