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