Re:VRaptor - Validation + Result.Include [Erro na exibição de result.include] RESOLVIDO

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.

<html>
.....
<body>
Atributo:  <input type="text" name="contato.seuAtributo" value="${contato.seuAtributo}"/>
Atributo2: <input type="text" name="contato.seuAtributo2" value="${contato.seuAtributo2}"/>
</body>
</html>

[]'s
Daniel

não precisa incluir o contato, o vraptor faz isso automaticamente…

se o problema é que a variavel grupos não está setada no jsp, troque o onErrorUsePageOf por onErrorForwardTo que vai funcionar…

o pageOf não executa o método, só vai direto pro jsp

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!

como eu falei, o onErrorUsePageOf não executa o método formulario, só vai direto pra jsp, por isso que não vai mostrar direito

troque pra onErrorForwardTo

Resolvido de ambas as maneiras!