0

我正在使用 Java 开发一个应用程序。我需要从一个对象中获取格式化的 HTML 数据并将其显示在一个 displaytag 构造的表中。但是,似乎默认情况下,displaytag 会通过 escapeHTML 对内容进行格式化,因此我的格式将无法正确显示。

就像我使用格式化数据突出显示 tag: 中匹配的搜索词一样<SPAN style='background-color:yellow;'></SPAN>。搜索结果中显示的信息是文字语法。而不是这个词的黄色背景。

如何取消转义 HTML 以便它可以显示突出显示的背景?

我已准备好尝试使用 escapeXml 属性。但是,由于属性无效,该应用程序失败。

谢谢,

4

2 回答 2

3

这很奇怪。根据displaytag 文档,默认情况下禁用 XML 转义。您确定标签中没有escapeXml="true"某处吗?

另一个原因可能是您使用 JSTL<c:out>标记来显示单个值。默认情况下,它会转义 XML。escapeXml="false"您可以通过向标签添加属性来禁用它。

于 2010-11-02T22:26:26.620 回答
0

我是否正确理解您想要取消转义转义的 HTML 代码?你可以这样做:

public static String unescapeHtml(final String input){
    return input
        .replace("&lt;", "<")
        .replace("&gt;", ">")
        .replace("&amp;", "&")
        .replace("&quot;", "\"");
}
于 2010-11-02T21:14:35.750 回答