VRaptor 3 + Interceptors  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
maruero
JavaTeenager
[Avatar]

Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline

Boa tarde galera,

Seguinte galera, eu tenho um interceptor que precisa tomar algumas decisões (forwards diferentes) dependendo dos valores dos parâmetros passados para um método de um controller meu, devidamente anotados com @Path e @Get.
Como que eu faço para expor ao Interceptor os parâmetros passados para essa minha lógica?

Obrigado,
--
Marcelo Dias
maruero
JavaTeenager
[Avatar]

Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline

Acredito que a principal causa de eu não conseguir enxergar no Interceptor os parâmetros passados para o Controller é o fato de meu Interceptor estar interceptando antes do ParametersInstantiatorInterceptor do VRaptor.
No caso eu estou usando uma InterceptorSequence, na qual eu defino a ordem dos meus interceptors. Não devo envolver na sequence Interceptors do Core do VRaptor, néh?!
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

olá maruero...

o jeito de fazer isso que vc quer funcionar hoje é sobrescrevendo o RequestExecution.

crie uma classe igual a essa:
https://github.com/caelum/vraptor/blob/master/vraptor-core/src/main/java/br/com/caelum/vraptor/core/DefaultRequestExecution.java

anote-a com @Component (além do @PrototypeScoped)

e dê um add no seu interceptor depois do ParametersInstantiatorInterceptor. Seu interceptor deve estar anotado com @Component, e não com @Intercepts.


a gente está implementando uma feature para deixar isso mais fácil:
http://groups.google.com/group/caelum-vraptor-dev/browse_thread/thread/6efa0620d119964a

qdo essa feature entrar no master vc só precisaria anotar seu interceptor com:



se quiser te mando um jar com isso funcionando (snapshot)

--
Caelum
www.caelum.com.br

maruero
JavaTeenager
[Avatar]

Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline

Olá Lucas,

Obrigado pela resposta, e a propósito, quero sim o .jar que você mencionou.

Então, eu fiz uma experiência que aparentemente funcionou.
Eu inclui o ParametersInstantiatorInterceptor em minha InterceptorSequence antes dos meus Interceptors, e dessa forma consegui enxergar os parâmetros através da instância de MethodInfo que eu coloquei nos construtores de meus Interceptors.
Você conhece algum problema em se fazer isso?
Talvez, de alguma forma, o ParametersInstantiatorInterceptor intercepta duas vezes?

Obrigado mais uma vez e até logo.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

se eu não me engano o interceptor vai rodar duas vezes sim... não sei se isso traz algum problema mto grande...

vou gerar o jar então e te passo (não hj )

--
Caelum
www.caelum.com.br

Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

o jar do vraptor com os interceptors novos...

lembrando que isso é um snapshot e não está estável
 Nome do arquivo vraptor-3.2.1-SNAPSHOT.jar [Disk] Download
 Descrição vraptor com novos interceptors
 Tamanho 484 Kbytes
 Baixado:  25 vez(es)


--
Caelum
www.caelum.com.br

maruero
JavaTeenager
[Avatar]

Membro desde: 21/08/2006 12:01:38
Mensagens: 174
Localização: Barueri
Offline

Valew!!!
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

se der qqer problema com esse jar, por favor me avise. Como eu disse, ele ainda não está estável

Abraços

--
Caelum
www.caelum.com.br

 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team