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

时间:2014-08-01 02:29:25

标签: templates spring-mvc thymeleaf

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

CODE

<h1 th:text="${header.title}" >
   title
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

我想得到这个输出:

<h1> TITLE <small> SUBTITLE</small> </h1>

但这是真正的输出:

<h1> TITLE </h1>

我怎么能这样做呢?它不会删除&#34; small&#34;?内的内容。

提前致谢。

4 个答案:

答案 0 :(得分:117)

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

这可以解决您的问题

<h1 th:inline="text" >
   [[${header.title}]]
   <small th:text="${header.subtitle}">Subtitle</small>
</h1>

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

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

答案 1 :(得分:7)

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

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

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

<h1> 
    TITLE 
    <small>SUBTITLE</small> 
</h1>

问候!

答案 2 :(得分:1)

我不确定您在尝试什么,因为small中的h1标记看起来不会很小。 Thymeleaf th:text标记将替换h1标记中的所有文字,这就是您的输出仅显示&#34; TITLE&#34;的原因。您应将<small>标记放在h1标记之外。

<h1 th:text="${header.title}">title</h1>

<small th:text="${header.subtitle}">Subtitle</small>

我相信你正在寻找这个答案:

<h1>
   <span th:text="${header.title}" th:remove="tag">title</span>
   <small th:text="${header.subtitle}">Subtitle</small>
</h1>

<击>

答案 3 :(得分:0)

除了@Faraj响应之外,您还可以像这样使用th:block

<h1>
   <th:block th:utext="${header.title}"/>
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>