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

Ala*_*ect 2 primefaces jsf-2

我把它发布到PrimeFaces用户论坛,但我认为他们太忙了,无法调查,所以我想我会试试这里.

我有服务器端字符串,其中有标记,所以当我想要它呈现时,我这样做:

            <p:panel>                    
                <f:verbatim>
                    #{daBean.markedUpString}
                </f:verbatim>
            </p:panel>
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但如果在p:dataTable中使用相同的标记,则无论是否使用p:panel enclosure.渲染的是div class ="ui-dt-c"元素,其中没有任何内容.为了测试,如果我取出f:verbatim标签,标记的文本将被转义并呈现.

我不知道这是否应该被认为是一个错误,但有没有人知道解决这个问题?这是PrimeFaces 3.0.M3.

Bal*_*usC 6

<f:verbatim>标签intented持有文本/ HTML,没有JSF组件也不EL表达式.当JSF组件之间无法内联纯文本/ HTML时,标签是JSF 1.0/1.1时代的遗留物.该标记在JSF2中已弃用.你不再需要它了.

因此,您的具体功能要求是从未转义的托管bean中显示一些HTML字符串.对于您应该使用<h:outputText>escape="false".

<h:outputText value="#{daBean.markedUpString}" escape="false" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: