我正在为我的JSF页面做一些自动代码生成。除此之外,还出现了重复ID的问题,我不明白。
以下代码段
<h:form id="myForm" prependId="true" >
<p:panelGrid id="myPanel1">
<p:panelGrid id="grid" />
</p:panelGrid>
<p:panelGrid id="myPanel2">
<p:panelGrid id="grid" />
</p:panelGrid>
</h:form>
会导致&#34; Duplicat ID错误&#34;,表示我的网页上已找到ID myForm:grid
。我期望的是具有模式myForm:myPanel1:grid
和myForm:myPanel2:grid
在组件树中,它显示了那些&#34; panelIDs&#34;
+id: myForm
type: javax.faces.component.html.HtmlForm@3720dee3
+id: myPanel1
type: org.primefaces.component.panelgrid.PanelGrid@4f09255b
+id: grid <===============
type: org.primefaces.component.panelgrid.PanelGrid@6173a1e6
+id: myPanel2
type: org.primefaces.component.panelgrid.PanelGrid@6e8a3505
+id: grid <===============
type: org.primefaces.component.panelgrid.PanelGrid@339f13f5
这是什么问题?我怎样才能制作那些&#34;网格ID&#34;独特?
我正在使用 PrimeFaces 4.0 Mojarra 2.1.27 在GF 3.1.2.2上运行
(但是,当只使用计划JSF时也会出现问题,所以我不会将其标记为特殊的PrimeFaces问题)
答案 0 :(得分:4)
只有components实施NamingContainer的component identifiers为后代UIPanel提供名称空间。
控件可以在不执行此功能的情况下成为容器。 {{3}}个实例通常只控制布局,不会产生相关的开销。