将百里香叶变量作为 html 代码而不是文本处理

2022-08-31 12:08:12

我正在使用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代码进行处理,而不是将其编码为文本?


答案 1

您可以使用代表未转义文本的属性(请参阅文档)。请谨慎使用,并避免用户输入,因为它可能会导致安全问题。th:utextth:utext

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

答案 2

如果需要速记语法,可以使用以下命令:

[(${variable})]

转义的速记语法是

[[${variable}]]

但是如果你用常规的括号更改内部方括号,HTML不会被转义。[(

标签内的示例:

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

推荐