如何在Primefaces <p:panel>标头属性中添加HTML标签?

时间:2018-07-10 14:41:04

标签: primefaces escaping panel

我已经使用以下代码绘制了Primefaces网页

<p:outputPanel id="TitlePanel">
    <p:outputLabel escape="false" value="#{pageTitle}"/>
</p:outputPanel>   

我现在想使用以下代码在可切换的面板中转换此<p:outputPanel>

<p:panel id="TitlePanel" 
         toggleable="true" 
         closable="true"
         >
    <p:outputLabel escape="false" value="#{pageTitle}"/>
    ...
</p:panel>   

但这不起作用,因为#{pageTitle}显示在第一个面板的标题后面!

我尝试了以下代码

<p:panel id="TitlePanel" 
         toggleable="true" 
         closable="true"
         header="#{pageTitle}"
         >
    ...
</p:panel>   

但这无效,因为#{pageTitle}返回的HTML标记被转义并显示在不太可读的标题中:-)

如何在'header'属性中添加HTML标签?

我的问题与jsf primefaces add p:inputText to p:panel 's header不同,因为我搜索显示具有特定格式的输出文本,而链接的问题搜索则在标题中插入输入小部件。答案是一样的,但问题是不同的。

1 个答案:

答案 0 :(得分:2)

这可以通过简单地添加以下<f:facet name="header">组来解决。

<p:panel id="TitlePanel" 
             toggleable="true" 
             closable="true"
             >
    <f:facet name="header">
        <p:outputLabel value="#{pageTitle}" escape="false"/>
    </f:facet>
    ...
</p:panel>   

此解决方案也适用于许多其他PrimeFaces组件。