3
respostas

Problemas com o I18nMessage do vraptor

Boa tarde,

Estou com problema na exibição da mensagem de erro.

@Post
    public void autentica(final Usuario usuario){
        if(!this.usuarioDAO.existe(usuario)){
            validator.add(new I18nMessage("login", "login.invalido"));
            validator.onErrorUsePageOf(this).formulario();
        }
        result.redirectTo(ProdutoController.class).lista();
    }

De acordo o código acima, na teoria depois de fazer :

validator.add(new I18nMessage("login", "login.invalido"));

o vraptor pegaria a mensagem no arquivo "messages.properties" e exibiria na tela, mas não é isso que está acontecendo. A mensagem não está aparecendo, mas ela se encontra no arquivo de propriedades.

login.invalido = usuário ou senha inválido.

Alguém pode me ajudar?

3 respostas

Oi Marco, o messages.properties está no classpath? em src/main/resources?

Alberto, Boa noite!

O arquivo esta neste caminho src/main/resources mesmo!!

Oi Marco

É exatamente este o local. Você pode inclusive comparar com o projeto final do curso:

https://github.com/alura-cursos/desenvolvimento-web-com-vraptor-4/blob/capitulo-9/src/main/resources/messages.properties

sobre o problema, quando você diz:

A mensagem não está aparecendo, mas ela se encontra no arquivo de propriedades

Aparece algo na tela? A mensagem entre sinais de interrogação ou algo assim.

Ou simplesmente não aparece nada? Se for esse o caso, vale a pena conferir se você tem as linhas de imprimir os erros no seu JSP:

<c:if test="${not empty errors}">
   <div class="alert alert-danger">
        <c:forEach var="error" items="${errors}">
            ${error.category} - ${error.message}<br />
        </c:forEach>
    </div>
</c:if>