How to show localization messages with parameters in Spring 3 / Thymeleaf How to show localization messages with parameters in Spring 3 / Thymeleaf spring spring

How to show localization messages with parameters in Spring 3 / Thymeleaf


You can use

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

where some.attribute would be the value to use when replacing {0}.

You should be able to comma separate the values between the () to add more values to be used.


You can even use a calculated message key as a parameter:

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

Above, the parameter of [msg3] is a message key [#{key}] where key is itself calculated [${param4}]. The benefit is that you can insert internationalized calculated fragments in an internationalized message.


If you need to pass an array of parameters where you don't know the size of the array then you can use:

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

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#messages-1