[RESOLVIDO]@ViewScoped + @PostCosntructor sendo chamado a cada requisição ajax

6 respostas
leonardobhbr

Boa noite!

Trabalhava com JSF 1.2 e estou me aventurando no JSF 2, cada dia é uma aventura nova a última descoberta foi a pior

Tenho um ManagedBean com a anotação @ViewScoped e o seguinte metodo nesse Bean

@PostConstructor public void initialize() { Pega os EJB's instanciados e faz algo }

Só que quando eu coloco o debug nesse metodo ele é chamado antes de carregar a pagina até ai beleza ta certo, só que a cada requisição ajax ele chama o metodo novamente mesmo se não houver redirecionamento de pagina.

Se eu mudar o meu bean de @ViewScoped para @SessionScoped o metodo e chamado apenas uma vez funcionando corretamente, só que não posso transformar todos meus ManagedBean para session seria inviável.

Alguem ja passou por isso ou que possa me dar alguma sugestão de como resolver este problema

Estou usando JSF2 + EJB3.1 + GlassFish 3.1

6 Respostas

altitdb

leonardobhbr,

já passei por isso, e no final das contas era um f:validatorXXX com um atributo disabled que tinha o valor dinamico.

Depois que tirei o disabled tudo voltou ao normal.

Quando se utiliza o @ViewScoped só executa o quando “recria” o bean.

Abraços.

xD~~

leonardobhbr

O detalhe que o meu bean não ta sendo recriado a cada requisição porque os atributos continuam populados entre as requisições.

O curioso que mesmo ele não recriando o bean ele chama o metodo com a anotação PostConstructor

altitdb

Leonardo,

você pode postar mais código??

Pra ver se tem algo de errado.

xD~~

leonardobhbr

Muito obrigado pela ajuda altitdb
Criei um bean simples e uma pagina simples e realmente a função foi chamada apenas uma vez.

Não sei ainda o que, é pois minha pagina utiliza composite componentes e vairos includes

Só que realmente é algum problema na minha página.

Vou colocar como resolvido ai quando eu descobrir a origem do erro e se não conseguir resolver, posto aqui de novo

thiagocg

Sei que o post ja ta resolvido, mas passei por esse problema recentemente e descobri que existe um bug no JSF 2:
http://java.net/jira/browse/JAVASERVERFACES-1492?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel
Esse bug é associado ao uso de component binding ou uso de jstl em uma pagina xhtml, ele ocorre devido a um bug no ‘partial state saving’.

Encontrei este post falando sobre isso e sobre a forma de corrigir.
http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html

Achei interessante compartilhar essa informação pois com certeza outros terão o mesmo problema.

[]'s

leonardobhbr

Obrigado thiagocg pela resposta!

Eu tinha visto que era um bug do JSF 2 só que não tinha encontrado nenhuma solução.

Vou dar uma olhada no segundo link

Obrigado mais uma vez

Criado 18 de junho de 2011
Ultima resposta 26 de jul. de 2011
Respostas 6
Participantes 3