正常に動作している動的に作成された HtmlPanelGrid があります。同じデータを使用したいのですが、今回はそれらをグループ化しますが、うまくいきません。現在の階層は次のとおりです。
Parent(HtmlPanelGrid)
|-->Child-1(HtmlPanelGrid)
|-->Child-1-1(Label/CommandButton)
|-->Child-1-2(Label/CommandButton)
|-->Child-2(HtmlPanelGrid)
|-->Child-2-1(Label/CommandButton)
|-->Child-2-2(Label/CommandButton)
通常、私は次のように表示していました。
<h:panelGrid binding="#{configurationManagedBean.dynamicAddonGrid}"/>
ここで、dynamicAddonGrid は親要素を表します。しかし、すべての第 1 レベルの子要素に対して新しい panelGrid を表示したいと考えています。そこで、次のように変更しました。
<ui:repeat var="group" value="#{configurationManagedBean.dynamicAddonGrid.children}">
<h:panelGrid binding="#{group}" />
</ui:repeat>
しかし、それは何も示していません。これは、バッキング Bean でこの階層を作成する方法です。
HtmlPanelGrid dynamicAddonGrid = new HtmlPanelGrid();
for(int gridIndex = 0; gridIndex < addonGrids.size(); gridIndex++){
AddonGrid currentGrid = addonGrids.get(gridIndex);
HtmlPanelGrid addonComponentPanelGrid = new HtmlPanelGrid();
addonComponentPanelGrid.setTitle(currentGrid.getDefinition());
addonComponentPanelGrid.setColumns(8);
for(int addonIndex = 0; addonIndex < currentGrid.getAddonList().size() ;addonIndex++){
Addon currentAddon = currentGrid.getAddonList().get(addonIndex);
HtmlOutputLabel labelComponent = new HtmlOutputLabel();
addonComponentPanelGrid.getChildren().add(labelComponent);
HtmlCommandButton commandButton = new HtmlCommandButton();
addonComponentPanelGrid.getChildren().add(commandButton);
}
dynamicAddonGrid.getChildren().add(addonComponentPanelGrid);
}
明確にするために、関係のないビジネス ロジックは省略しました。
親要素と第 1 レベルの子要素の両方が HtmlPanelGrids ですが、どういうわけかグループ化できません。できるということですが、何も表示されません。何かを見落としているようです。どんな助けでも大歓迎です。