我把它发布到PrimeFaces用户论坛,但我认为他们太忙了,无法调查,所以我想我会在这里试试。
我有服务器端字符串,其中包含标记,所以当我想要它呈现时,我这样做:
<p:panel>
<f:verbatim>
#{daBean.markedUpString}
</f:verbatim>
</p:panel>
这样可以正常使用,但如果在 p:dataTable 中使用相同的标记,则无论是否带有 p:panel 附件。渲染的是 div class =“ui-dt-c”元素,其中没有任何内容。要测试一下,如果我拿出 f:verbatim 标记,标记的文本就会被转义并呈现。
我不知道这是否应该被认为是一个错误,但有没有人知道解决这个问题?这是使用PrimeFaces 3.0.M3。
答案 0 :(得分:6)
<f:verbatim>
标记用于保存普通文本/ HTML,而不是JSF组件或EL表达式。当JSF组件之间无法内联纯文本/ HTML时,标签是JSF 1.0 / 1.1时代的遗留物。该标记在JSF2中已弃用。你不再需要它了。
因此,您的具体功能要求是显示未转义的托管bean中的某些HTML字符串。为此,您应将<h:outputText>
与escape="false"
一起使用。
<h:outputText value="#{daBean.markedUpString}" escape="false" />