Bom galera… Novamente eu aqui… e, esse erro, não sei se é a maneira certa de fazer, mas… acredito que eu tenha feito errado!
Bom, tenho uma classe formulário que vai incluir os grupos… mas quando acontece um erro no validator do VRaptor e retorna para essa mesma classe formulario, os includes os quais eram importantes para o formulário não ocorrem, apenas exibindo os errors do Validator.
Segue código:
@Get
@Path("/contato/novo")
public void formulario() {
result.include("grupos", gDao.listar());
}
@Post
@Path("/contato")
public void adiciona(final Contato contato) {
if (contato.getNome().length() == 0) {
validator.add(new ValidationMessage("Digite o Nome", "usuario.nome"));
}
validator.onErrorUsePageOf(ContatoController.class).formulario();
dao.add(contato);
result.redirectTo(ContatoController.class).lista();
}
Bom… eu sei que poderia retornar no método um List<Grupo> entretanto, no formulário de edição, poderia me dar um erro sendo que eu retorno na edição um tipo Contato…
Qual seria a melhor maneira de corrigir esse erro?
Não sei se entendi, mas se você quer que, ao retornar p/ o método formulario() o formulário da tela fique preenchido, você precisa adicionar o contato ao request.
Algo +/- assim:
@Post
@Path("/contato")
public void adiciona(final Contato contato) {
if (contato.getNome().length() == 0) {
validator.add(new ValidationMessage("Digite o Nome", "usuario.nome"));
result.include("contato", contato)
}
validator.onErrorUsePageOf(ContatoController.class).formulario();
dao.add(contato);
result.redirectTo(ContatoController.class).lista();
}
E nos input’s do JSP, preencher os atributos VALUE com o contato.seuAtributo.
Pois é lucas, mas no JSP está mostrando normalmente antes de retornar pelo erro, entende?
ainda não testei as infos que o Dan passou, mas, bom, … fiquei meio pasmo com isso!