组件将带有HTML代码的字符串注入并解释到JSF页面中
我在JSF2.0中使用PrimeFaces构建一个应用程序。我使用PrimeFaces组件将带有HTML代码的字符串注入并解释到JSF页面中,html,jsf,jsf-2,primefaces,escaping,Html,Jsf,Jsf 2,Primefaces,Escaping,我在JSF2.0中使用PrimeFaces构建一个应用程序。我使用PrimeFaces组件让用户能够创建富文本。但该组件的输出是HTML源代码,如下所示: String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>"; String text=“此文本包含一些HTML代码。”; 当我在中显示此项时,如下所示: <h:outputTex
组件让用户能够创建富文本。但该组件的输出是HTML源代码,如下所示:
String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>";
String text=“此文本包含一些HTML代码。”;
当我在
中显示此项时,如下所示:
<h:outputText value="#{bean.text}" />
然后将HTML代码显示为纯文本:
此文本包含一些HTML代码
是否有任何组件可以解释HTML源代码,例如,
实际显示为斜体,
显示为粗体
此文本包含一些HTML代码
JSF默认情况下从支持bean属性中转义HTML,以防止XSS攻击漏洞。要禁用此功能,只需将
的escape
属性设置为false
<h:outputText ... escape="false" />
这样,HTML将不会被转义,因此将由webbrowser进行解释
与具体问题无关,请注意XSS攻击,因为这里基本上是重新显示用户控制的输入,而不是越界。您可能需要事先对其进行消毒