小编典典

将带有HTML代码的String注入并解释为JSF页面的组件

html

我正在将PrimeFaces与JSF 2.0一起构建一个应用程序。我正在使用PrimeFaces
<p:editor>组件使用户能够创建富文本。但是此组件的输出是HTML源,如下所示:

String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>";

当我在<h:outputText>下面显示此内容时:

<h:outputText value="#{bean.text}" />

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

此文本包含一些 HTML 代码。

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

此文本 包含 一些 HTML 代码。


阅读 296

收藏
2020-05-10

共1个答案

小编典典

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

<h:outputText ... escape="false" />

这样,HTML将不会被转义,因此将由网络浏览器解释。


具体问题 无关 ,请当心XSS攻击,因为您基本上是在重新显示未转义的用户控制输入。您可能需要事先对其进行消毒。

2020-05-10