quarta-feira, 14 de abril de 2010

JSF Managed Bean sendo Chamado Diversas Vezes (Como Evitar este Erro Comum)

Estava procurando no Google a resposta para um problema que estava tendo na utilização do framework Seam, quando me deparei com a resposta para uma solução de algo que já me incomodava a algum tempo.

O problema consiste em vários acessos a um método em um Managed Bean durante a requisição de uma página JSF e durante a submissão de um POST. Este comportamento se apresenta quando se usa um método na tag value, pois durante o ciclo de vida do JSF ele pode acabar chamando tal método diversas vezes.

Para evitar isso, deve-se anotar o método que retorna o dado a ser apresentado na tela com @Factory(value="variavelUsadaNaPagina", scope=ScopeType.PAGE), sendo que o nome declarado em em value deve ser utilizado na tag value na sua página e o escopo é onde tal variável irá viver.

Depois de aprender isso, me toquei que seria possível mandar esta variável para o escopo de conversação e depois injetar a variável em outro método, algo bastante útil!

O post onde encontrei a solução para este problema pode ser acessado através do endereço: http://www.mojavelinux.com/blog/archives/2008/05/avoid_this_common_jsf_mistake/

Nenhum comentário:

Postar um comentário