我正在使用Java开发应用程序。我需要从对象中获取格式化的HTML数据并将其显示在displaytag构造表中。但是,似乎默认情况下,displaytag通过escapeHTML对内容进行格式化,因此我的格式无法正常显示。
就像我使用格式化数据突出显示标记中匹配的搜索词:<SPAN style='background-color:yellow;'></SPAN>
。搜索结果中显示的信息是文字语法。而不是单词的黄色背景。
如何取消HTML以显示突出显示的背景?
我准备尝试使用escapeXml属性。但是,由于属性无效,应用程序失败。
谢谢,
答案 0 :(得分:3)
这很奇怪。根据{{3}}默认禁用XML转义。您确定标签中某处没有escapeXml="true"
吗?
另一个原因可能是您使用JSTL <c:out>
标记来显示单个值。它默认情况下转义为XML。您可以通过向代码添加escapeXml="false"
属性来停用它。
答案 1 :(得分:0)
我是否正确理解您要取消转义的HTML代码?你可以这样做:
public static String unescapeHtml(final String input){
return input
.replace("<", "<")
.replace(">", ">")
.replace("&", "&")
.replace(""", "\"");
}