1
resposta

Erro onErrorSendBadRequest + I18nMessage + Ajax - Vraptor 4

Estou tendo um problema com o método onErrorSendBadRequest, quando utilizo mensagem através do I18nMessage, quando realizo uma chamada ao método do meu controller via ajax o vraptor serialize o retorno em um json porém não apresenta a mensagem vinculada a chave no arquivo message.properties, apresenta a chave conforme segue imagem abaixo:

Retorno requisição ajax:

{
"errors": [
    {
        "message": "login.invalido",
        "severity": "ERROR"
    }
]
}

Meu validator:

public void validate(Usuario usuario) {
    // Validar se login e senha foram informados
    validator.addIf(usuario.getLogin() == null, new I18nMessage("login", "login.null"));
    validator.addIf(usuario.getSenha() == null, new I18nMessage("login", "senha.null"));
    validator.addIf(!usuarioDao.isExisteLogin(usuario), new I18nMessage("login", "login.invalido"));
    validator.addIf(usuarioDao.isExisteLogin(usuario) && usuarioDao.isEmpty(usuario), new I18nMessage("login", "senha.invalida"));
    if (!method.containsAnnotation(Public.class)) {
        validator.validate(usuario);
        validator.addIf(usuarioDao.isExisteLogin(usuario),
                new I18nMessage("login", "usuario.login.existe"));
        validator.addIf(usuarioDao.isExisteEmail(usuario),
                new I18nMessage("email", "usuario.email.existe"));    
    }

}

Controller:

@Public
@Post("/autentica")
@Consumes(value = "application/json", options = WithoutRoot.class)
public void autentica(Usuario usuario) {
    validator.validate(usuario);
    validator.onErrorSendBadRequest();
    usuarioSession.setUsuario(usuarioDao.getUsuario(usuario));
    result.use(Results.json())
        .withoutRoot()
        .from(new Success("login", "Login realizado com sucesso!", "/"))
        .serialize();
}

Observação: As validações do BeanValidations são serializadas corretamente

1 resposta

Oi ostro

Vou tentar te ajudar, em qual aula surgiu essa dúvida para eu poder dar uma olhada?