0

我正在使用 Apache Wicket 制作博客。对于富文本编辑器,我使用的是从 Github 获得的 stackoverflow markdown fork。它将 HTML 存储在数据库中。当我检索内容并将其显示在标签中时,我遇到了问题。

问题是用户可能同时包含内容和代码,因此在从我label.setEscapeModelStrings(false);在标签上使用的数据库中检索内容时,以保留格式。但是如果帖子在标签中包含 HTML pre,那么它也会被解析和呈现。

我希望pre标签中的 HTML 可能不会按原样呈现和显示。

只有当用户发布包含一些 HTML 代码时才会出现问题。任何解决方案,服务器端或客户端?

谢谢

更新 也许我可以用 Jsoup 解析内容并转义里面的内容pre。示例是:-
content.replaceAll(">",">");

4

1 回答 1

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("<", "&lt;");
        String content2 = content.replaceAll(">", "&gt;");
        pre.html(content2);
    }

//Save to db..

它有效。

于 2013-10-08T10:21:09.697 回答