Подтвердить что ты не робот

Как показать сообщения о локализации с параметрами в Spring 3/Thymeleaf

Я использую Spring 3 и Thymeleaf для создания некоторых веб-страниц, и я теряюсь, как показывать такие сообщения:

welcome.message = Привет {0}, добро пожаловать!

а затем замените {0} именем пользователя внутри тегов thymeleaf:

<h1 th:text="#{welcome.message}">Welcome Placeholder</h1>

Я даже не уверен, что {0} - правильный синтаксис для сообщения пакета.

4b9b3361

Ответ 1

Вы можете использовать

#{welcome.message(${some.attribute})}

где some.attribute будет значением, которое следует использовать при замене {0}.

Вы должны иметь возможность запятой разделять значения между (), чтобы добавить больше значений, которые будут использоваться.

Ответ 2

Вы даже можете использовать вычисленный ключ сообщения в качестве параметра:

<p th:text="#{messages.msg1(${param1})}"></p>
<p th:text="#{messages.msg2(${param2},${param3})}"></p>
<p th:text="#{messages.msg3(#{${param4}})}"></p>

Выше, параметр [msg3] является ключом сообщения [# {key}], где ключ сам рассчитывается [$ {param4}]. Преимущество состоит в том, что вы можете вставить интернационализированные вычисленные фрагменты в интернационализированное сообщение.

Ответ 3

Если вам нужно передать массив параметров, для которых вы не знаете размер массива, вы можете использовать:

<p th:text="${#messages.msgWithParams(messageKey, messageParams)}"></p>