情况
JavaServer Faces版本:2.1.6
我有一个带有两个嵌套cc的父复合组件.其中一个包含HtmlPanelGroup,它具有组件绑定.我使用该绑定以编程方式将HtmlCommandLink-Objects添加到HtmlPanelGroup.
我们打电话给一些ID:
期望
我希望以下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)
Run Code Online (Sandbox Code Playgroud)
问题
第一页访问时,HtmlCommandLink-Object的ID错误.而不是"PARENT:CHILD_SECOND:GROUP:LINK_1",ID仅为"CHILD_SECOND:GROUP:LINK_1".刷新页面后,ID正确"PARENT:CHILD_SECOND:GROUP:LINK_1".实际上,第二个复合组件中的每个组件("CHILD_SECOND")都缺少ID的第一部分("PARENT").刷新后所有ID都正确.
解
我可能会在第一次访问后自动刷新页面.但我不想.
che*_*ero -2
浏览器解释后的id并不像你想象的那样。据我所知不超过3级。例如:
<h:form id="form">
<h:panel id="panel">
<h:panel id="panel1">
<h:label id="lab"/>
</h:panel>
<h:panel id="panel2">
</h:panel>
</h:panel>
</h:form>
Run Code Online (Sandbox Code Playgroud)
那么标签的 id 将不是 form:panel:panel1:lab 而是 form:panel:lab。如果你想获取id的widget更深,那我也说不出来,但不会超过3层。我可以告诉你如何找到 id。你可以只写页面,然后在chrome或firefox上查看它,你可以在解释后看到源代码。这样你就可以得到你想要的id。
祝你好运!
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |