【发布时间】:2016-03-18 06:32:47
【问题描述】:
<h:form>
<p:dashboard id="board"
binding="#{fundamentFormCreatorBean.dashboard}">
</p:dashboard>
</h:form>
FacesContext fc = FacesContext.getCurrentInstance();
Application application = fc.getApplication();
dashboard = (Dashboard) application.createComponent(fc,
"org.primefaces.component.Dashboard",
"org.primefaces.component.DashboardRenderer");
dashboard.setId("dashboard");
DashboardModel model = new DefaultDashboardModel();
column1 = new DefaultDashboardColumn();
Panel panel = (Panel) application.createComponent(fc,
"org.primefaces.component.Panel",
"org.primefaces.component.PanelRenderer");
panel.setId("UniqueId");
panel.setHeader("panelName");
panel.setClosable(true);
dashboard.getChildren().add(panel);
column1.addWidget(panel.getId());
我想从 bean 添加一个f:facet 到面板。我已经添加了 Primefaces 仪表板 及其面板从 bean 动态显示在上面的代码中。我尝试使用以下代码添加构面,但没有成功。
HtmlGraphicImage oTabImage= new HtmlGraphicImage();
oTabImage.setValue("/images/tabicon.jpg");
HtmlOutputText oText = new HtmlOutputText();
oText.setValue("Here is my label");
HtmlPanelGroup oGroup = new HtmlPanelGroup();
oGroup.getChildren().add(oText);
oGroup.getChildren().add(oTabImage);
panel.getFacets().put("label", oGroup);
【问题讨论】:
-
您是否尝试将
ui:debug添加到您的页面并检查它是否在视图中? -
您不必要地尝试使用可以使用 XHTML 轻松实现的冗长 Java 代码来实现您的两个问题中的目标。
-
@Tiny ,我知道用 XHTML 很容易实现,但是我需要生成动态表单,所以我需要一种机制来从 bean 代码创建 ui。
-
Tiny 的意思是,即使是动态部分也可以用 xhtml 来实现...在你的示例中 没有什么 需要在java中完成。并在 xhtml 中尝试一个。我认为它不会...检查文档和展示...并专注于方面
-
@Kukeltje 我只有 XHTML 中的仪表板标签,如果可以通过 XHTML 动态地将方面添加到仪表板的面板中,请告诉我。
标签: jsf jsf-2 primefaces