当前位置: 首页 > 面试题库 >

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

拓拔谭三
2023-03-14
问题内容

我正在将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 代码。


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: from bs4 import BeautifulSoup import urllib,sys reload(sys) sys.setdefaultencoding(“utf-8”) r = urllib.urlopen('https://twitter.com/ndtv’).read() soup = BeautifulSoup(r) 这不会使整个网页滚动到我想要的末尾,而只会滚动其

  • 注释 当它需要的时候,注释应该用来解释特定的代码做了什么。所有的注释必须被持续维护或者干脆就删掉。 块注释应该被避免,代码本身应该尽可能就像文档一样表示意图,只需要很少的打断注释。 例外: 这不能适用于用来产生文档的注释 头文档 一个类的文档应该只在 .h 文件里用 Doxygen/AppleDoc 的语法书写。 方法和属性都应该提供文档。 例子: /** * Designated initi

  • 问题内容: 我想在ng-repeat块中添加带有插值表达式的HTML注释。但是,当我尝试执行此操作时,不会对表达式进行插值。例如: 当我查看DOM(即Chrom DevTools中的Elements标签)时,我只看到未插补的字符串(“ {{item.id}}”)而不是插补的值。 这里正确的语法是什么? 问题答案: 这是一种矫kill过正的方法,因为您可以只使用或类似注释中的建议,但是这只是一个有趣

  • 最近我决定尝试用Spring MVC学习Thymeleaf。目前我正在存储html正文片段,如img,iframe等。使用带有 UTF-8 编码和西里尔符号的百里香叶标签将此 html 片段注入一个通用 html 页面后,出现了问题。更准确地说,这些 html 片段来自 Spring 控制器的 Model 属性。是否可以仅将片段注入到一个通用 html 页面中,如下所示: 控制器的请求方法如下所示

  • 问题内容: 我创建了一个ajax标签导航,并将html插入页面。代码如下: 好的…所以我将标记附加到html中。现在,我需要从插入的html中选择dom元素,但是我不能。我有以下代码: 在这里,我动态生成选择选项。当我尝试这样做时: 它不起作用。通过ajax附加html后,如何使用javascript? 问题答案: 使用1.7版以上的委托事件 为了提高性能,您应该编写最接近的static(未使用a

  • 我有一些html代码,例如, <代码> 我想将代码复制并粘贴到富文本格式,这样可以将html代码解析为真正的DOM。 我知道有js clipBoardData、zeroClipBoard、clipBoard polyfill,但它们都存在兼容性问题。我想写一个,它可以适用于大多数浏览器,我如何才能做到这一点?有什么想法吗? 在我看来,每个浏览器都可以解析html代码,而我复制的东西也是用html写