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"));
}
}
}