JavaServer Faces的版本:2.1.6
我得到母體複合部件具有兩個嵌套立方厘米。其中一個包含一個HtmlPanelGroup,它有一個組件綁定。我使用該綁定以編程方式將HtmlCommandLink對象添加到HtmlPanelGroup。
讓我們把一些標識:
- 家長父CC
- CHILD_FIRST第一個孩子CC,嵌套在父母
- CHILD_SECOND的第二個孩子CC,嵌套在父母
- GROUP for PanelGroup,嵌套在CHILD_SECOND中
- LINK_1爲第一個HtmlCommandLink對象,編程添加到GROUP
期望
我希望以下ID鏈接(與默認javax.faces.SEPARATOR_CHAR):
PARENT (Composite Component, declarative)
PARENT:CHILD_FIRST (Composite Component, declarative)
PARENT:CHILD_SECOND (Component Component, declarative)
PARENT:CHILD_SECOND:GROUP (HtmlPanelGroup, declarative)
PARENT:CHILD_SECOND:GROUP:LINK_1 (HtmlCommandLink, programmatically)
問題
的HtmlCommandLink-對象的ID是錯誤的在第一頁訪問。代替「父母:CHILD_SECOND:GROUP:LINK_1」,ID僅爲「CHILD_SECOND:GROUP:LINK_1」。刷新頁面後,ID正確「父母:CHILD_SECOND:GROUP:LINK_1」。實際上,第二個複合組件(「CHILD_SECOND」)中的每個組件都缺少ID(「父項」)的第一部分。刷新後所有ID都正確。
解決方案
我可能會自動在第一次訪問後刷新頁面。但我不想。
我發現很難理解具體問題,因爲'HtmlPanelGroup'不是'NamingContainer'組件,因此不應該將它的ID前置到命令鏈接子節點。你根本不應該在命令鏈接兒童的ID中看到「GROUP:」。一個真正的SSCCE將極大地幫助更好地理解具體問題。 – BalusC
爲什麼地球上這個問題有10個upvotes?問題是目前的形式沒有一個有效的SSCCE沒有任何意義,因此無法回答。太糟糕了,我無法重新過關近期投票。 – BalusC
@Bluasc我認爲你是對的,這很難弄清楚實際的PanelGroup是否包含組件。 – Sheel