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

Raf*_*fal 2 html java spring-mvc thymeleaf spring-boot

我在 Spring Boot 项目中使用 Thymeleaf。

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

使用:

<p th:text="${myString}"> </p>
Run Code Online (Sandbox Code Playgroud)

我有这样的事情:

<b> text </b>
Run Code Online (Sandbox Code Playgroud)

没关系,因为myString文本字符串的值是

String myString = "<b> text </b>"; 
Run Code Online (Sandbox Code Playgroud)

所以尝试以其他方式做到这一点,使用:

<p th:utext="${myString}"> </p>
Run Code Online (Sandbox Code Playgroud)

我有这样的事情:

文本

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

text 
Run Code Online (Sandbox Code Playgroud)

无需任何 HTML 标签且无需呈现 HTML 代码的简单文本。

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

我已经尝试了一些th:remove="tags"th:inline="text"但到目前为止它不起作用。

提前致谢

Met*_*ids 7

Thymeleaf 对此没有任何本机支持,因此您将不得不找到您最喜欢的库来删除标签,而是使用它。在这个例子中,我使用了Jsoup

将其添加到您的 pom 文件后,应该可以使用以下内容:

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

您也可以创建自己的方言来自动执行此操作,但这更复杂。然后你可以使用你自己的属性:

<div bohdan::removehtml="${myString}" />
Run Code Online (Sandbox Code Playgroud)