我动态创建我的面板,我想动态添加像'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上需要一个点击监听器。
答案 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);