将 Thymeleaf 变量处理为 HTML 代码而不是文本

问题描述 投票:0回答:4

我正在使用 Thymeleaf 处理 html 模板,我了解如何从控制器附加内联字符串,但现在我想将 HTML 代码片段附加到页面中。

例如,让我们在我的 Java 应用程序中保留这个:

String n="<span><i class=\"icon-leaf\"></i>"+str+"</span> <a href=\"\"></a>\n";

final WebContext ctx = new WebContext(request, response, 
                                      servletContext, request.getLocale());
ctx.setVariable("n", n);

我需要在 HTML 页面中编写什么,以便将其替换为

n
变量的值并作为 HTML 代码进行处理,而不是编码为文本?

java thymeleaf
4个回答
163
投票

您可以使用代表未转义文本的

th:utext
属性(请参阅文档)。请谨慎使用,并避免用户在
th:utext
中输入,因为这可能会导致安全问题。

<div th:remove="tag" th:utext="${n}"></div>

17
投票

如果您想要简写语法,您可以使用以下内容:

[(${variable})]

转义简写语法是

[[${variable}]]

但是如果您将内部方括号

[
更改为常规
(
HTML 不会转义。

标签内的示例:

<div>
    [(${variable})]
</div>

0
投票

从 Thymeleaf 3.0 开始,html 友好标签将是:

<div class="mailbox-read-message" data-th-utext="*{body}">

-1
投票

[(${variable})]
对我来说效果很好。完美,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.