| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2011 10:44:05
|
RicardoTerzella
What is classpath?
Membro desde: 17/06/2011 07:47:54
Mensagens: 5
Offline
|
Pessoal,
Tenho esse problema que venho contornando de diversas formas, mas queria ajuda para encontrarmos uma solução direta:
Quando acesso uma página JSF diretamente via URL os MBs que são usados nessa página não são inicializados com as propriedades que mapeei no faces-config.
Essa inicialização só acontece quando acesso o MB via alguma action, mas nem sempre esse é o caso.
Estou usando o MyFaces.
As soluções de contorno que já utilizei foram: um javascript redirecionando via jsFunction do a4j e iniciar o MB via PhaseListener... mas queria saber se tem alguma solução mais rápida, mais lógica, intuitiva...
Valeu!!
PS.: Tentei alguma coisa via PostConstruct, mas nada...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2011 12:05:39
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
A mais elegante acho que é inciar o MBean no PhaseListener mesmo.
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2011 12:27:12
|
RicardoTerzella
What is classpath?
Membro desde: 17/06/2011 07:47:54
Mensagens: 5
Offline
|
Obrigado pela resposta Marcos,
Penso que num PhaseListener minha lógica fica segmentada demais. Navegando pelo código não é intuitivo buscar pelo PhaseListener.
Por ora optei por utilizar um método PostConstruct que inicia as propriedades "manualmente".
A situação atual é mais tranquila porque o caso que estou tratando é controlado por mim mesmo e tenho certeza de que um parâmetro será passado junto à URL.
A solução atual está como segue:
O ManagedBeanLoader é uma classe simples que criei e que ainda utilizo, mas que tento não mais precisar dela:
Ainda busco outra solução...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2011 12:28:29
|
rodrigovfsilva
Debugger
![[Avatar]](/images/avatar/9f0fd032f17effe47439a28c1ac69e77.png)
Membro desde: 22/07/2005 14:44:50
Mensagens: 68
Localização: Rio de Janeiro - RJ
Offline
|
Você poderia criar um PhaseListener, instanciar seus MBs nele na implementação dos métodos beforePhase() ou o afterPhase().
Dá uma lida para pegar o entendimento do ciclo de vida do JSF que vai facilitar a sua vida!
|
Rodrigo Vinicius - RJ
Engenheiro de Software - Java EE
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2011 12:32:40
|
RicardoTerzella
What is classpath?
Membro desde: 17/06/2011 07:47:54
Mensagens: 5
Offline
|
Valeu Rodrigo!
Cara, mas realmente não penso que um PhaseListener seja uma boa opção... o código não fica claro mesmo...
Utilizo o PhaseListener só quando ele faz um sentido maior... como por exemplo na verificação de login válido antes de processar cada requisição...
|
|
|
 |
|
|