我有以下Java变量:
context.setVariable("content", "test <b>test</b>");
context.setVariable("condition", condition);
,我要将其放置在以下模板中:
<p th:text="${condition}?${content}:''"></p>
预期结果为:如果条件为真,则“测试测试”。然而, 结果是
"test <b>test</b>"
如果我打开页面并且条件为true。将th:text=...
更改为th:utext=...
会导致
"test <b>test</b>"
显示在我的页面上,这仍然不是我想要的。
有没有办法做到这一点?
答案 0 :(得分:1)
如果要使用实际的HTML,则需要传递实际的(未转义的)HTML并使用th:utext
。 (传递转义的HTML并认为Thymeleaf会为您取消转义是没有意义的。)
// Controller
context.setVariable("content", "test <br>test</br>");
<!-- HTML -->
<p th:utext="${condition}?${content}:''"></p>
如果您确实想传递"test <br>test</br>"
,则必须使用字符串搜索/替换将那些字符改回<
和>
(可能使用#strings
实用程序对象)。