H:没有的outputText从渲染XML响应HTML尽管逃生=“假”(h:outputText n

2019-08-31 14:11发布

我有以下代码:

<h:outputText value="#{bean.shortDescription}" escape="false" />

其结果是:

<P> <B>位置。 </ B> <br />一个

从字符串#{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" />

那么结果是:

地点。
一个

我怎样才能正确显示HTML标签我从XML得到什么? 我不想逃避它们。

Answer 1:

这是因为你的文字逃走。 该escape="false"UNESCAPE文本。 它只是打印文本,是逃避它代替。 然而,当你的文本已经从开始就逃跑了,它出现在逃脱形式。 删除escape="false" ,你会看到,这将是双重逸出。 即每&成为&amp;

你需要事先未逸出它。 该阿帕奇共享郎 StringEscapeUtils可能会派上用场。

String unescapedShortDescription = StringEscapeUtils.unescapeXml(shortDescription);

然后,可以使用<h:outputText escape="false">打印它原样。



文章来源: h:outputText not rendering HTML from XML response in spite of escape=“false”