用于将带有HTML代码的String注入和解释到JSF页面的组件

kay*_*ush 14 html jsf escaping primefaces jsf-2

我正在使用PrimeFaces和JSF 2.0来构建一个应用程序.我正在使用PrimeFaces <p:editor>组件来使用户能够创建富文本.但是这个组件的输出是HTML源代码,如下所示:

String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>";
Run Code Online (Sandbox Code Playgroud)

当我在<h:outputText>下面显示如下:

<h:outputText value="#{bean.text}" />
Run Code Online (Sandbox Code Playgroud)

然后它将HTML代码显示为纯文本:

<p>此文本<i>包含</ i>一些<b> HTML </ b>代码.</ p>

是否有任何组件可以解释HTML源代码,以便例如<i>实际显示为斜体和<b>粗体?

本文包含一些HTML代码.

Bal*_*usC 29

默认情况下,JSF从支持bean属性中转义HTML以防止XSS攻击漏洞.要禁用此功能,只需设置to 的escape属性<h:outputText>即可false.

<h:outputText ... escape="false" />
Run Code Online (Sandbox Code Playgroud)

这样,HTML将不会被转义,因此将由webbrowser解释.


具体问题无关,谨防XSS攻击,因为你在这里基本上重新显示未转义的用户控制输入.您可能希望事先对其进行消毒.