| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 13:35:20
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Fala pessoal!
No VRaptor já tem algum redirect que volta para a última tela chamada?
Se não, como eu poderia implementar isso...
Eu tentei algo assim:
Um interceptor pega e guarda em uma classe @SessionScoped o método que está indo e um método que redireciona para este método pegado pelo interceptor.
Mas ficou bem confuso, ainda mais se o método anterior recebe parametros...
-Edit-
Eu consegui só com métodos que não recebem parâmetros e também tentei fazer isso usando o validator... Sem sucesso em nenhuma situação...
| Nome do arquivo |
LastAnnotationRedirect.jar |
Download
|
| Descrição |
Plugin do VRaptor para redirecionamento para telas anteriores |
| Tamanho |
12 Kbytes
|
| Baixado: |
10 vez(es) |
This message was edited 3 times. Last update was at 08/06/2011 18:41:10
|
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 14:56:33
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
existe o:
mas não é 100% garantido que o referer existe.
ele vai redirecionar para a página que originou a requisição. É isso que vc quer?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 17:00:39
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Então... Mais ou menos isso... Queria poder informar quais métodos poderiam ser "retornáveis" e quando eu quisesse retornar, ele fosse para o último método retornável... Eu consegui algo parecido... Usei annotations para informar... Também estou usando o Mirror... Mas não consigo informar os parâmetros...
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 17:31:30
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
use o interceptor então
para pegar os args, receba MethodInfo no construtor e guarde o info.getParameters()
detalhe: seu interceptor precisa ser @Intercepts(after=ParametersInstantiatorInterceptor.class)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:05:11
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Então, daí eu estou tendo o seguinte erro:
java.lang.IllegalArgumentException: Cannot invoke a method by name if one of it's arguments is null. First reflect the method.
De fato o parametro é nulo... E deveria, neste caso... Como eu faço a parte em negrito?
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:14:19
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
como vc tá pegando o Method pra invocar?
vc pode usar o resourceMethod.getMethod()
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:20:47
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Estou fazendo assim... Onde recursos é a minha classe q guarda as informações do métodos.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:24:00
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
troque para:
vc colocou o after no @Intercepts como eu te falei?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:29:54
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Coloquei sim... Na verdade coloquei em outro interceptor que é executado antes desse...
Funcionou sem o getName()...
Mas qual o motivo?
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:31:41
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
qdo vc usa o getName o mirror tenta procurar qual é o método que se adequa aos parâmetros que vc passou... se o parâmetro é null ele não tem como saber, então dá a exception.
como vc já tem o Method que vc quer invocar, é só passá-lo diretamente, daí poupa o mirror do trabalho de procurá-lo
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 18:51:26
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Entendi...
Que tal se implementasse isso no VRaptor? Alguma forma de result.redirectToLastAnnotated();
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 19:28:18
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
se definir direitinho como isso funcionaria, não vejo pq não
pode entrar como um plugin por enquanto, que acha?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 19:45:03
|
Rafael Guerreiro
JavaEvangelist
Membro desde: 26/10/2010 07:28:13
Mensagens: 479
Localização: São Paulo/SP
Offline
|
Sim sim... Então como disponibilizo isso como plugin?
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 19:59:30
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
-crie um projeto no github com o código
-Forkeie https://github.com/caelum/vraptor-contrib
-git add submodule vraptor-nome-do-plugin <url do git dele>
-commite a adição do submodulo e mande um pull request
a gente vai fazer um jeito automático de disponibilizar todos esses plugins, daí a gente comunica todo mundo =)
[]'s
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 21:24:04
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Porque fazer uma volta tão grande se o VRaptor possui um exception handler que não apenas faz redirect, mas que popula todos os objetos de volta no request e adiciona a exception no response conforme o padrão servlets?
http://vraptor.caelum.com.br/documentacao/exception-handling/
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
|
|