Bom dia Pessoal.
Estou em um projeto novo com VRaptor 3 e, até aqui, está indo tudo muito bem.
Estou montando a logica de acesso a páginas e funcionalidades do sistema.
Basicamente me baseio nas actions para definir acesso no sistema.
Basicamente: Um usuário tem um list de actions que pode acessar.
As models já foram construídas, o cadastro de actions e controllers também.
Do que preciso:
Meu plano é comparar a action que o usuário está tentando acessar com seu mapa.
in array ( action corrente, mapa action usuario ) ? abrir pagina : nao abrir pagina
Estou usando interceptors (@Interceptor) para algumas rotinas e sei como ele funciona.
Alguem tem idéia de como recuperar o nome do controller a partir do ResourceMethod
Meu interceptor (ainda em debug esta ficando assim)
package br.com.brabus.epico.interceptor;
import java.lang.annotation.Annotation;
import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.resource.ResourceMethod;
public class CaminhoInterceptor implements Interceptor{
private final Result result;
public CaminhoInterceptor(Result result) {
this.result = result;
}
public boolean accepts(ResourceMethod method) {
return true;
}
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException {
System.out.println( "METHOD :: " + method.getMethod().getName() );
System.out.println( "CONTROLLER :: " + method. ????????????? ); // como chegar na controller
for (Annotation annotation : method.getMethod().getAnnotations()) {
System.out.println( "ANNOTATION:: " + annotation.getClass().getName() );
}
stack.next(method, resourceInstance);
}
}
Valeu pessoal.
A propósito, estou com o VRaptor a duas semanas,
Já tenho um help desk funcionando,
cadastro de usuarios,
cadastro de departamentos,
cadastro de serviços,
interceptors de controle e migração de dados entre diferentes bases/sistemas (oracle => mysql) => substituindo os famosos crons
Não é uma crítica mas ia me fu… com JSF com EJB
O time entre aprendizado x aplicação com o VRaptor é absurdo.