4.1 信息

我们已经知道,#{...}信息表达式允许我们将这个:

<p th:utext="#{home.welcome}">Welcome to our grocery store!</p>

链接到这个:

home.welcome=¡Bienvenido a nuestra tienda de comestibles!

但是还有一个方面,我们没有考虑到:如果文本信息不是完全静态的,将会发生什么呢?比如,要是我们的应用在任何时候都知道谁正在访问,并且我们想要在显示欢迎信息的时候带上名字,该怎么办呢?

<p>¡Bienvenido a nuestra tienda de comestibles, John Apricot!</p>

这意味着我们需要在信息里添加一个参数。就像这样:

home.welcome=¡Bienvenido a nuestra tienda de comestibles, {0}!

参数由java.text.MessageFormat标准语法指定。这意味着你可以按照那些类的API文档,将它们格式化为数字或者日期。

我们有一个HTTP会话属性,叫做user,为了给我们的参数指定一个值,我们这样写:

<p th:utext="#{home.welcome(${session.user.name})}">
  Welcome to our grocery store, Sebastian Pepper!
</p>

可以指定多个参数(用逗号隔开)。实际上,信息的键本身可以来自于一个变量:

<p th:utext="#{${welcomeMsgKey}(${session.user.name})}">
  Welcome to our grocery store, Sebastian Pepper!
</p>

Last updated