| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2011 14:51:08
|
mondor
Thread.start()
Membro desde: 25/05/2011 09:48:38
Mensagens: 33
Offline
|
Pessoal,
Tenho um header.jsp que fica na pasta commons, e ela é incluída em várias outras páginas.
A dúvida é, esse header recebe alguns parâmetros, sendo assim todo método nos controllers que utilizam o header, eu tenho que dar o include nele...
Por exemplo:
entre outros métodos que tenho que dar esse include também!
Como inclui esse totalAlertas direto no header.jsp?
Sei que é possível, mas é uma boa fazer isso no header mesmo? Não teria um jeito melhor? Pois, vou ter que sempre inicializar o dao no jsp, correto?
Obrigado!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2011 15:58:29
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
Você pode criar um objeto como ApplicationScoped e armazenar esses atributos nele.
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2011 16:58:43
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
vc pode também criar um interceptor que seta esses parâmetros
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2011 07:02:54
|
mondor
Thread.start()
Membro desde: 25/05/2011 09:48:38
Mensagens: 33
Offline
|
Lucas, mas um interceptor iria chamar todas as vezes, até mesmo nas páginas que não precisa, correto?
Seria uma boa colocar um "select" a mais nas páginas que não precisam?
Do ApplicationScoped eu entendi, mas como se anota o objeto? Aonde eu anotaria? Com esse scoped, ficaria acessível em todas as jsp correto? me parece uma boa opção, tem algum exemplo por aí galera?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2011 09:53:17
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
você pode configurar o interceptor para só passar nas lógicas que precisam das informações (implementando o método accepts corretamente)
http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/ - capítulo de autorização tem um jeito legal de implementar isso, com anotações
o applicationScoped não ficaria disponível por padrão nas jsps, mas é só receber um ServletContext no construtor e fazer um context.setAttribute("nomeDoComponente", this);
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2011 16:01:29
|
mondor
Thread.start()
Membro desde: 25/05/2011 09:48:38
Mensagens: 33
Offline
|
Lucas,
Entendi, fiz e deu certo!
Primeiro botei o after
Após fiz minha lógica
Vai ser uma boa, pois existem mais includes em comum entre as páginas! Gostei desse método, muito legal ficar anotando os métodos
Sei que poderia em vez da anotação pegar as classes do controller no accept, mas existem muitas classes, achei melhor a anotação.
Fiz algo de errado ou existe algo que poupe mais trabalho ainda? (duvido)
E ah sim, apesar de eu anotar o interceptor como after, se o interceptor de autorização redirecionar, ele não vai chegar a ir para o segudo né?
Obrigado Lucas!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2011 16:58:54
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
mais fácil que isso só se vc definir uma convenção (tipo, todos os controllers do pacote .....meuperfil serão interceptados) mas não ganha tanto...
só vai chamar esse interceptor se o de Autorizacao chamar o stack.next
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
|
|