Thymeleaf th:text - 放置文本而不删除HTML结构

Joh*_*lla 47 templates spring-mvc thymeleaf

我是百里香的新手,我尝试创建一个模板.我的问题是这段代码:

<h1 th:text="${header.title}" >
   title
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Run Code Online (Sandbox Code Playgroud)

我想得到这个输出:

<h1> TITLE <small> SUBTITLE</small> </h1>
Run Code Online (Sandbox Code Playgroud)

但这是真正的输出:

<h1> TITLE </h1>
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做它不会删除"小"里面的东西?

提前致谢.

Far*_*ook 130

我遇到了同样的问题.答案是th:inline='text'

这应该可以解决您的问题

<h1 th:inline="text" >
   [[${header.title}]]
   <small th:text="${header.subtitle}">Subtitle</small>
</h1>
Run Code Online (Sandbox Code Playgroud)

或者你也可以使用 th:remove="tag"

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Run Code Online (Sandbox Code Playgroud)

  • 在所有其他答案中,这个答案是最有用和最重要的.它完全解决了我的问题. (2认同)
  • 有关内联的参考,请参阅:http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#inlined (2认同)

Emi*_*ano 8

无论标签的语义如何,正确答案都是这样的:

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Run Code Online (Sandbox Code Playgroud)

通过这种方式,Thymeleaf删除了de <span>tag,结果就是您所期望的:

<h1> 
    TITLE 
    <small>SUBTITLE</small> 
</h1>
Run Code Online (Sandbox Code Playgroud)

问候!


rva*_*lez 6

除了@Faraj回复之外,你还可以th:block这样使用

<h1>
   <th:block th:utext="${header.title}"/>
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Run Code Online (Sandbox Code Playgroud)