VRaptor 2 - Mesma logica / 2 redirecionamentos

2 respostas
A

Olá.
Estou iniciando com o Vraptor 2 e estou com uma dúvida.
Quando a minha logica efetuaLogin retorna “ok”, redireciono ela para outra logica (no views.properties: admin.efetuaLogin.ok = reuniao.lista.logic).
Da mesma forma, após executar o método lista da reuniao, ele retorna para o reuniao.lista.ok e eu redireciono-o para validaUsuario.ok.jsp . Nesta jsp irei usar as taglibs para listar todas os objetos reuniao.

A minha duvida é a seguinte.
Caso queira utilizar esta lógica também em uma outra pagina de minha web app, como faço isso?
Ou seja, quero usar a mesma logica reuniao.lista.logic (para listar os objetos reuniao) mas, desta vez, quero ir para uma pagina diferente da reuniao.lista.ok (já que esta irá me redirecionar para a validaUsuario.ok.jsp que é utilizada somente quando o usuário entra pela primeira vez).
Como consigo diferenciar para qual pagina devo mandar o jsp? Pensei em enviar de minha jsp um atributo com o nome da pagina que deverá ser redirecionado e pegar este atributo no request de minha logic e utilizá-lo para ser o return de minha logica. Desta forma, quando o usário logasse, enviaria uma string no request por exemplo “loginOk”. Na hora de retornar da reuniao.lista.logic retornaria esta string que iria para a jsp loginOk. E na outra página hipotetica, enviaria uma String “listaOk” para a reuniao.lista.logic que retornaria exatamente esta string para uma pagina diferente. Não sei se esta é a melhor forma de fazer e se for também não sei como implementá-la.

Alguem ajuda?

Muito obrigado!

2 Respostas

sergiolopes

Olá!

Se entendi bem o seu problema, acho que eu resolveria extraindo um método com a lógica comum:

class MeuController {

   private void listagem() {
      // codigo da lista aqui
   }

   public void lista() {
      listagem();
   }

   public void outraLista(){
      listagem();
   }
}

E no views.properties:

reuniao.lista.ok = validaUsuario.ok.jsp
reuniao.outraLista.ok = lista.ok.jsp
A

=) É uma solução bem mais simples mesmo…

A única coisa ruim é você ter que repetir métodos que fazem a mesma coisa apenas para poder redirecionar para uma página diferente…

Muito obrigado pela ajuda Sergio!

Abs

Alexandre

Criado 8 de setembro de 2009
Ultima resposta 9 de set. de 2009
Respostas 2
Participantes 2