Spring MVC Thymeleaf th:text -在不删除HTML结构的情况下放入文本

u3r8eeie  于 2022-11-14  发布在  Spring
关注(0)|答案(4)|浏览(162)

我是thymeleaf的新手,我试着创建一个模板。我的问题是这个代码:

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

我希望得到以下输出:

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

但这才是真实的的产出:

<h1> TITLE </h1>

我怎样才能做到,这样它才不会去掉里面的“小”呢?

8oomwypt

8oomwypt1#

我也面临同样的问题答案是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>
ni65a41a

ni65a41a2#

不管标记的语义如何,正确答案是:

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

Thymeleaf通过这种方式删除了<span>标记,结果如您所愿:

<h1> 
    TITLE 
    <small>SUBTITLE</small> 
</h1>
5vf7fwbs

5vf7fwbs3#

除了@Faraj响应之外,还可以使用th:block,如下所示

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

vfh0ocws4#

我不知道你在尝试什么,因为h1中的small标签不会显得很小。Thymeleaf th:text标签会替换h1标签中的所有文本,这就是为什么你的输出只显示“TITLE”。你应该把<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>

相关问题