如何动态地将ui-icon添加到我的标题面板?

时间:2013-09-04 11:32:17

标签: jsf primefaces

我动态创建我的面板,我想动态添加像'ui-icon-pencil'这样的图标到我的标题面板。我看到可以使用f:facet标签,但我不知道如何动态添加此标签。建议可能吗?

我希望这个XHTML结构包含java代码:

<p:panel id="pnl">  
    <f:facet name="options">  
        <h:outputText value="Panel 1"/>
        <p:menuitem value="Edit" url="#" icon="ui-icon-pencil"/>
    </f:facet>
</p:panel>

我的MenuItem上需要一个点击监听器。

1 个答案:

答案 0 :(得分:3)

您可以通过UIComponent#getFacets()将这些构面放入地图中,以编程方式向构件添加构面。

所以,Java相当于:

<p:panel>
    <f:facet name="header"><h:outputText value="bar" /></f:facet>
</p:panel>

如下:

Panel panel = new Panel();
UIOutput header = new HtmlOutputText();
header.setValue("bar");
panel.getFacets().put("header", header);