caelum/vraptor — Issue #403: validator.onErrorUse(ExtJSon) duplicando o Json de resposta
Author: guivirtuoso
Created: 2011-10-08 16:13:14+00:00
State: open

Ao usar a implementação abaixo, a resposta Json está saindo duplicada.

final SegUsuario usuarioLogado = segUsuarioDAO.carrega(segUsuario);
List errors = new Validations() {{
that(usuarioLogado != null, "error", localization.getMessage("usuario.login"));
}}.getErrors();
validator.addAll(errors);
validator.onErrorUse(ExtJSJson.class).from(errors).success(false).serialize();
usuarioWeb.login(usuarioLogado ); // AUTENTICANDO NA SESSAO
result.redirectTo(MainController.class).main();

Para corrigitar tal situação foi necessário realizar a implementação desta forma:

final SegUsuario usuarioLogado = segUsuarioDAO.carrega(segUsuario);
List errors = new Validations() {{
that(usuarioLogado != null, "error", localization.getMessage("usuario.login"));
}}.getErrors();
if (!errors.isEmpty()) {
result.use(ExtJSJson.class).from(errors).success(Boolean.FALSE).serialize();
} else {
usuarioWeb.login(usuarioLogado ); // AUTENTICANDO NA SESSAO O USUARIO LOGADO
result.use(ExtJSJson.class).from("").success().serialize();
}