如何在Spring 3 / Thymeleaf中显示带参数的本地化消息

时间:2013-12-26 18:31:56

标签: java spring thymeleaf

我正在使用Spring 3和Thymeleaf制作一些网页,我迷失了如何显示这样的消息:

welcome.message = Hello {0},欢迎!

然后用百万美元标签内的用户名替换{0}:

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

我甚至不确定{0}是否是捆绑消息的正确语法。

3 个答案:

答案 0 :(得分:71)

您可以使用

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

其中some.attribute是替换{0}时要使用的值。

您应该能够用逗号分隔()之间的值,以添加更多要使用的值。

答案 1 :(得分:21)

您甚至可以使用计算出的消息密钥作为参数:

<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}]。好处是您可以在国际化消息中插入国际化计算片段。

答案 2 :(得分:1)

如果需要在不知道数组大小的地方传递参数数组,则可以使用:

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