我正在使用Apache Wicket制作博客。对于Rich文本编辑器,我使用的是来自Github的stackoverflow markdown fork。它将HTML存储在数据库中。当我检索内容并将其显示在标签中时,我遇到了问题。
问题是用户可能同时包含内容和代码。因此,在从数据库中检索内容时,我在Label上使用label.setEscapeModelStrings(false);
以保留格式。但是如果帖子在pre
标签中包含HTML,那么它也会被解析和呈现。
我希望pre
标记中的HTML可能无法呈现并按原样显示。
仅当用户帖子包含一些HTML代码时才会出现此问题。任何解决方案,服务器端或客户端?
由于
更新
可能我可以使用Jsoup解析内容并转义pre
内的内容。
例如: -
content.replaceAll(">",">");
答案 0 :(得分:0)
我部分关注@ Nicktar建议在存储到数据库之前转义字符串,
但是因为我不是很好@Javascript我选择使用Jsoup来解析字符串并转义pre
标签中的内容。这是代码: -
Document doc = Jsoup.parse(labelText); //labelText comes from input
Elements titleElements = doc.getElementsByTag("pre");
for (Element pre : titleElements) {
String content = pre.html().replaceAll("<", "<");
String content2 = content.replaceAll(">", ">");
pre.html(content2);
}
//Save to db..
它有效。