如何使用Thymeleaf呈现多文本部分HTML标签

时间:2018-02-15 20:45:59

标签: html thymeleaf

我需要渲染一个包含两个部分的标签,因为有些CSS会以不同的方式应用于两个文本部分(不同的颜色和字体)。 HTML输出应如下所示:

<label for="lname1" class="required">
   <span class="field-name">Last name</span> 
<strong class="required">(required)</strong></label>

我没有高兴地尝试过这样的事情:

<label for="lname1" th:text="#{lastname}" class="required">Last Name
   <strong class="required"><span th:text="#{required}">(required)
</span></strong></label>

似乎模板引擎在第一个&#34;&gt;&#34;之后忽略了所有内容。在标签标签中。是否有任何方法可以通过为每个表单字段使用两个标签标记来实现这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用表达式内联来存档您的目标:

<label for="lname1" class="required">
  [[${lastname}]]
  <strong class="required">
    <span th:text="#{required}">(required)</span>
  </strong>
</label>

http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html第12章:内联

答案 1 :(得分:1)

我认为您遇到的“问题”是th:text替换所有子元素的事实。

这应该产生你想要的东西:

<label for="lname1" class="required">
   <span class="field-name" th:text="#{lastname}">Last name</span> 
<strong class="required" th:text="#{required}">(required)</strong></label>