【发布时间】:2013-10-08 20:06:39
【问题描述】:
我正在使用 Apache Wicket 制作博客。对于富文本编辑器,我使用的是从 Github 获得的 stackoverflow markdown fork。它将 HTML 存储在数据库中。当我检索内容并将其显示在标签中时,我遇到了问题。
问题是用户可能同时包含内容和代码,因此在从数据库中检索内容时,我在标签上使用label.setEscapeModelStrings(false); 以保留格式。但如果帖子在pre 标签中包含 HTML,也会被解析和呈现。
我希望pre 标记中的 HTML 不能按原样呈现和显示。
只有当用户发布的内容包含一些 HTML 代码时才会出现问题。任何解决方案,服务器端还是客户端?
谢谢
更新
也许我可以用 Jsoup 解析内容并转义 pre 中的内容。
例如:-content.replaceAll(">",">");
【问题讨论】:
-
我认为您必须手动转义 pre 标签中的 html(即在将其发送到您的服务器之前的 javascript)...
-
@Nicktar 请查看更新后的问题,您如何看待这种方法?我对 Javascript 不是很满意
-
修复错字后,这看起来可行,但我建议使用 Wicket 内置方法来实际转义这些部分。这样做的 Wicket 方法是 org.apache.wicket.util.string.Strings.escapeMarkup(CharSequence)。