0
我想處理backing bean中<h:panelGroup>
內的所有<p:panel>
組件。我已將<h:panelGroup>
綁定到支持bean屬性。但在@PostConstruct
方法期間,該屬性爲null
。在物業setPanel()
的制定者期間,組件沒有孩子。如果我使用按鈕提交某些內容,那麼我可以獲得面板的孩子。如何在@PostConstruct方法中訪問組件的子項?
在@PostConstruct
方法中獲取組件的子項需要做些什麼?
查看:
<h:panelGroup binding="#{wiz.panel}">
<p:panel header="one">
<h:outputText value="primeiro" />
</p:panel>
<p:panel header="two">
<h:outputText value="segundo" />
<h:inputText />
</p:panel>
<p:panel header="three">
<h:outputText value="terceiro" />
</p:panel>
<p:panel header="four">
<h:outputText value="quarto" />
</p:panel>
</h:panelGroup>
支持bean
@PostConstruct
public void init() {
if (getPanel() != null) {
for (UIComponent comp : getPanel().getChildren()) {
if (comp instanceof Panel) {
System.out.println(((Panel) comp).getHeader());
}
System.out.println("not a panel child");
}
} else {
System.out.println("panel is null");
}
}
f:event現在正在調用init方法,但getPanel()還沒有孩子。是否有另一種「類型」我應該嘗試? – 2011-12-28 19:02:46
getPanel()方法只返回'panel',對吧? (順便說一句,爲什麼不直接訪問'panel'?)。您使用的是JSF impl/version?它適用於Mojarra 2.1.4中的我。 – BalusC 2011-12-28 19:06:08