表达式内联
尽管标准方言允许我们使用标记属性来执行几乎所有操作,但是在某些情况下,我们更喜欢直接将表达式写到HTML文本中。例如,我们可能更喜欢这样编写:
<p>Hello, [[${session.user.name}]]!</p>
以代替:
<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>
在Thymeleaf中,[[...]] 或之间的表达式 [(...)] 被认为是内联表达式,在它们内部,我们可以使用在 th:textor th:utext 属性中也有效的任何类型的表达式。
请注意,尽管 [[...]] 对应于 th:text(即结果将被HTML转义),但 [(...)] 对应于 th:utext 并且将不执行任何HTML转义。因此 msg = 'This is <b>great!</b>',给定该片段,使用诸如的变量:
<p>The message is "[(${msg})]"</p>
结果将使那些 <b> 标签未转义,因此:
<p>The message is "This is <b>great!</b>"</p>
如果需要转义:
<p>The message is "[[${msg}]]"</p>
结果将转义为HTML:
<p>The message is "This is <b>great!</b>"</p>
请注意,默认情况下,文本内联在每个标记主体(而不是标签本身)中处于活动状态,因此我们无需执行