Dúvida Validação Vraptor

Olá,
adiquiri o livro do vraptor e no capitulo sobre validação me surgiu uma dúvida, o exemplo é o caso de saber se já existe um livro salvo no banco com o mesmo ISBN onde é criado o LivroValidator, nessaarquitetura ententi, mas na arquitetura que costumo usar, eu teria o Livro repository,que seria responsavel por retornar as consultas e persistir os objetos

@Stateless
public class LivroRepository{
public boolean existeIsbn(String isbn){...}
public void salvar(Livro livro){...}
}

e teria minha classe de service,que valida o dominio onde a validação do BeanValidator não alcança e caso a validação falhe, eu lanço uma exceção, no caso uma exceção daminha propria aplicação


@Stateless
public class LivroService{

@EJB
private LivroRepository repo;

public void guardarNaEstante(Livro livro){

  if(!repo.existeIsbn()){
repo.salvar(livro);
}else{
throw new BusinessException("Já existe livro cadastrado com esse isbn");
}
}

A dúvida é : no vraptor eu consigo tratar esse erro no controler, mostrar a mensagem de erro e continuar no formulario ?

@Resource
public class LivroController{

//LivroService service = receboo service por lookup...

public void salvar(Livro livro){
try{
service.salvar(livro);

}catch(BusinessException e){
validator.add(new I18nMessage("titulo", "ja.existe"));
}
}
}

Você pode fazer mais ou menos assim:

}catch(BusinessException e){  
   validator.add(new I18nMessage("titulo", "ja.existe"));
   validator.onErrorRedirectTo(this).form();
}

O erro é considerado somente quando você chama o “onError[DO SOMETHING]”.

Acho que a sua dúvida era essa né?

sim é isso, pegar o erro, mostar a mensagem do validator e continuar na mesma tela e não ir para uma tela de erro ou mostrar a stack trace, sção dúvidas bestas mas é porque minha experiencia com frameworks action basead é quase zero, mas sou fâ do do vraptor e tou estudando pra aprender, mas se posso fazer isso lá blz!