指定构面的父组件以在对话框组件中呈现标题

时间:2012-11-14 06:29:03

标签: jsf primefaces

如何指定f:facet的父组件将其指定为p:dialog组件的子组件?我一直在尝试这个,但没有渲染标题。

<p:dialog id="pageDialog">
    <p:outputPanel>
        <p:outputPanel>
            <f:facet name="header" parent="pageDialog" >
                Followed Topics
            </f:facet>
        </p:outputPanel>
    </p:outputPanel>
</p:dialog>

1 个答案:

答案 0 :(得分:0)

这是不可能的。 <f:facet>by specification特定于最近的父组件。

您可能希望将<p:outputPanel>扩展到可以执行此任务的自定义组件。您可以通过UIComponent继承的getFacets()方法获取,添加和删除构面。在preRenderView活动期间执行以下工作:

UIComponent headerFacet = getFacets().remove("header");

if (headerFacet != null) {
    UIComponent dialog = getItSomehowPerhapsBasedOnAnAttribute();
    dialog.getFacets().put("header", headerFacet);
}
相关问题