.include em controller  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
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!
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.
[WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

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?
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

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!
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team