加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsf – h:尽管escape =“false”,outputText也没有从XML响应中

发布时间:2020-12-16 07:58:46 所属栏目:百科 来源:网络整理
导读:我有以下代码: h:outputText value="#{bean.shortDescription}" escape="false" / 结果是: pbLocation. /b br / a 来自#{bean.shortDescription}的字符串来自转义的XML响应: lt;pgt;lt;bgt;Location. lt;/bgt; lt;br /gt; a 如果我使用与上面相同的输出文
我有以下代码:
<h:outputText value="#{bean.shortDescription}" escape="false" />

结果是:

<p><b>Location. </b> <br /> a

来自#{bean.shortDescription}的字符串来自转义的XML响应:

&lt;p&gt;&lt;b&gt;Location. &lt;/b&gt; &lt;br /&gt; a

如果我使用与上面相同的输出文本,但是我没有从XML中获取响应,而是将响应中的转义字符串放入,例如:

<h:outputText value="&lt;p&gt;&lt;b&gt;Location. &lt;/b&gt; &lt;br /&gt; a" escape="false" />

然后结果是:

Location.
a

如何正确呈现从XML中获取的HTML标记?我不想逃避他们.

这是因为你的文字已被转义. escape =“false”不会取消文本.它只是按原样打印文本而不是转义它.但是,由于您的文字已从头开始转义,因此它以转义形式显示.删除escape =“false”,你会看到它将被双重转义.即每一个&成为& amp;

你需要事先解开它. Apache Commons Lang StringEscapeUtils可能会派上用场.

String unescapedShortDescription = StringEscapeUtils.unescapeXml(shortDescription);

然后,您可以使用< h:outputText escape =“false”>按原样打印.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读