f:verbatim标记在dataTable中停止工作

时间:2011-09-24 15:24:48

标签: jsf-2 primefaces

我把它发布到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。

1 个答案:

答案 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" />

另见: