Amigos, estou com um pequeno problema na vaidação.
Criei um aspecto pra validar todos os metodos registrar(entity).
vejam e opinem:
@Pointcut("execution(public void *.registrar(..)) && args(entity,..)")
public void validar(Object entity){};
@Before("validar(entity)")
public void validarBefore(JoinPoint joinPoint, Object entity){
logger.debug("Validando beans");
//Infelizmente ainda tenho que fazer isso para não levar nullpointer
JSR303Validator.getFactory();
validator.validate(entity);
validator.onErrorUse(Results.referer()).forward();
}
O problema é o seguinte:
Eu quero ter um efeito semelhande ao código acima, só que não quero depender do cliente enviar o header referer para saber para quem responder, e sim usar uma convenção onde se o método a ser validado for Batatas.registrar(Batata batata) o formulário está em Batatas.formularioBatataRegistrar(), e é para la que eu vou apontar o erro também;
se fosse pra colocar no próprio controler ficaria:
@Get
@Path("/registro")
public void formularioRegistrar(){}
@Post
@Path("/registro")
public void registrar(Batata batata){
validator.onErrorUse(page()).of(getClass()).formularioRegistrar();
//neǵocios
}
mas criei o aspecto justamente para não fazer isso.
Lá no aspect não estou conseguindo pegar as informações do método que foi interceptado, para tentar formar o nome do método que quero chamar…
Alguém tem alguma idéia?
