A mensagem de validação do Spring Boot não está sendo resolvida
Estou tendo problemas para resolver minha mensagem de validação.
Estou pesquisando e lendo a Web e SO há algumas horas. Quero relacionar a pergunta com a resposta marcada dePersonalizar erro de validação de mola
Eu tenho umMessageSource
feijão definido e omessages.properties sendo lido corretamente, como também o uso para texto normal a ser exibido comth:text="#{some.prop.name}
, que funciona absolutamente bem. É apenas o erro de validação que não funciona da maneira que deveria. Tenho certeza de que é um erro estúpido que simplesmente ignoro ... A validação em si funciona bem.
Restrição:
@NotEmpty(message="{validation.mail.notEmpty}")
@Email()
private String mail;
messages.properties:
# Validation
validation.mail.notEmpty=The mail must not be empty!
Parte do modelo:
<span th:if="${#fields.hasErrors('mail')}" th:errors="*{mail}"></span>
O texto exibido:
{validation.mail.notEmpty}
Eu tentei muita variação, tudo sem sucesso.
@NotEmpty(message="validation.mail.notEmpty")
@NotEmpty(message="#{validation.mail.notEmpty}")
Apenas mostrará o valor exato da sequência de mensagens, sem análise.
<span th:if="${#fields.hasErrors('mail')}" th:errors="${mail}"></span>
<span th:if="${#fields.hasErrors('mail')}" th:errors="#{mail}"></span>
<span th:if="${#fields.hasErrors('mail')}" th:errors="#{*{mail}}"></span>
<span th:if="${#fields.hasErrors('mail')}" th:errors="#{__*{mail}__}"></span>
Irá resultar em um erro.
EDITAR:
Após a depuração, deparei-me com isso:
Classe:org.springframework.context.support.MessageSourceSupport
Método:formatMessage(String msg, Object[] args, Locale locale)
será chamado com
formatMessage("{validation.mail.notEmpty}", null, locale /*German Locale*/)
E vai correr emif (messageFormat == INVALID_MESSAGE_FORMAT) {
Então ... meu formato de mensagem não está correto. Isso está fora do meu escopo / conhecimento. Alguém sabe o que isso significa?