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?

questionAnswers(2)

yourAnswerToTheQuestion