mongodb - 如何在Mongo中保存HTML并在Thymeleaf中显示
我在mongodb中存储博客文章。帖子可以有新的行(存储为\n\r)和锚标签。
{
"header" : "Some header",
"body" : "The first paragraph.\n\rThe second paragraph\n\r<a href=\"www.example.com\" title=\"Example\">Example text</a>",
"languageCode" : "DE"
}
通过在我的 thymeleaf 视图中这样做,我可以显示新行。
<p th:utext="${#strings.replace(#strings.escapeXml(blogEntry.blogPost.body),' ','<br>')}"></p>
但是锚标签却显示为纯文本。
如何将来自控制器的锚标签格式化为指向另一个网站的实际链接?
【回答】:
移除 #strings.escapeXml(...)
功能。
注意事项
使用 th:text
意味着相关字符串中的任何HTML都将被转义--即一个字符串,如 "...<br>..."
将被视为一个字面字符串。使用 th:utext
意味着该字符串将保持 未成形 - 因此,任何HTML标签中的字符串,如 "...<br>..."
将被视为HTML。
然而,如果同时使用 #strings.escapeXml(...)
,你是在扭转 th:utext
通过转义被处理的字符串。在这种情况下,这不是你想要的。
请注意 潜在风险 与使用 th:utext
. 例如,您可能希望在将用户提供的(即不信任的)输入保存到数据存储中之前以其他方式进行转义。