有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在我的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=“tags”以及th:inline=“text”,但到目前为止还不起作用

提前谢谢


共 (3) 个答案

  1. # 1 楼答案

    您在Thymeleaf中使用th:block。这只是一句话,不呈现html代码

    示例代码

    <th:block th:text="${message}"></th:block>
    
  2. # 2 楼答案

    Thymeleaf没有任何本机支持,因此您必须找到您最喜欢的库来删除标记,并改用它。在这个例子中,我使用了Jsoup

    将其添加到pom文件后,类似这样的操作应该会起作用:

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

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

    <div bohdan::removehtml="${myString}" />
    
  3. # 3 楼答案

    使用utext 例如:

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