如何在打印文本字符串时使用Thymeleaf忽略HTML标记?

时间:2017-06-26 22:06:47

标签: java html spring-mvc spring-boot thymeleaf

我在Spring Boot项目中使用Thymeleaf。

我有一个包含一些HTML标记的文本字符串,我的目标是在没有样式的情况下打印它,也不打印任何HTML标记。

使用:

<p th:text="${myString}"> </p>

我有这样的事情:

<b> text </b>

这很好,因为 myString 文本字符串的值是

String myString = "<b> text </b>"; 

因此尝试以其他方式使用:

<p th:utext="${myString}"> </p>

我有这样的事情:

文字

但我的目标是获得这样的非格式化纯文本:

text 

只需在没有任何HTML标记的情况下发送文字,而无需呈现HTML代码。

如何仅使用Thymeleaf来实现这一目标?

我已经尝试了一些 th:remove =&#34; tags&#34; 以及 th:inline =&#34; text&#34; 但到目前为止它还没有奏效。

提前致谢

3 个答案:

答案 0 :(得分:4)

Thymeleaf对此没有任何原生支持,因此您必须找到自己喜欢的库以删除标签,而不是使用它。在此示例中,我使用了Jsoup

将它添加到您的pom文件后,这样的事情应该有效:

<div th:text="${T(org.jsoup.Jsoup).parse(myString).text()}" />

你也可以创建自己的方言,自动完成,但这更复杂。然后你可以使用自己的属性:

<div bohdan::removehtml="${myString}" />

答案 1 :(得分:1)

你在Thymeleaf中使用th:block。它只是百里香的句子而不是渲染HTML代码。

示例代码

<th:block th:text="${message}"></th:block>

答案 2 :(得分:0)

使用utext 示例:

<p th:utext="${myString}"> </p>