有没有办法设置Firefox和Chrome在h:outputText标记中使用escape = false属性 . 当某些html需要在浏览器中显示时,Firefox和Chrome会正确显示已解析的字符串,但应用程序中的任何其他链接都会被冻结(??) .
来自db的示例html:
<HEAD>
<BASE href="http://"><META content="text/html; charset=utf-8" http-equiv=Content-Type>
<LINK rel=stylesheet type=text/css href=""><META name=GENERATOR content="MSHTML 9.00.8112.16434">
</HEAD>
<BODY><FONT color=#000000 size=2 face="Segoe UI">läuft nicht</FONT></BODY>
在页面上解析HTML:
läuftnicht
非常奇怪的是,在IE中一切正常(通常是相反的) .
我使用primefaces组件(v2.2),. xhtml,tomcat 7和JSF 2.0
2 回答
在我看来,你正在尝试做一些JSF并不真正想做的事情 . 您应该尝试在页面上添加链接并通过AJAX调用修改“呈现”属性,而不是尝试在网页中插入HTML .
你这样结束语法invalid HTML:
这个不对 . 只能有一个
<head>
和<body>
. 浏览器的行为未指定 . 您需要从该HTML中删除整个<head>
和包装<body>
,以便您最终只能使用您需要更新数据库以删除不必要的HTML,或者使用Jsoup按每个请求解析此部分,如下所示:
或者,您也可以在servlet的帮助下将其显示在HTML _109015中 . 例如 .
Unrelated 具体问题:
在数据库中存储HTML是一种糟糕的设计 .
如果HTML源自用户控制的输入,那么这就是一个巨大的XSS攻击漏洞 .
自1998年以来,
<font>
标签已弃用 .