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

How to add HTML tag in Primefaces <p:panel> header attribute?

我已经使用以下代码绘制了一个 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} 显示在第一个面板的 header 之后!

我试过下面的代码

<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 不同,因为我搜索以显示具有特定格式的输出文本,而链接的问题搜索则在 header 中插入输入小部件。答案一样,问题不一样

这可以通过简单地添加以下 <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 组件。