我在我的复合 JSF 组件中创建了一个链接:
<h:link id="menu-abc" outcome="/abc" value="ABC" />
该链接不在表单内。但是,当我查看呈现的 HTML 代码时,有一个动态生成的 ID 作为我的 ID 的前缀:
<a id="j_idt33_menu-abg" name="j_idt33_abv" href="abc.xhtml">ABC</a>
我无法找出这个动态 id 的来源。有任何想法吗?
ps:我们将分隔符从 : 更改为 _
我在我的复合 JSF 组件中创建了一个链接:
<h:link id="menu-abc" outcome="/abc" value="ABC" />
该链接不在表单内。但是,当我查看呈现的 HTML 代码时,有一个动态生成的 ID 作为我的 ID 的前缀:
<a id="j_idt33_menu-abg" name="j_idt33_abv" href="abc.xhtml">ABC</a>
我无法找出这个动态 id 的来源。有任何想法吗?
ps:我们将分隔符从 : 更改为 _
这些症状表明您实际上根本没有自定义组件,而是一个复合组件,并且您出于某种原因将NamingContainer分隔符从:更改为。_
复合组件本身就是命名容器,并在其所有子组件的 ID 前面加上自己的 ID。原因很简单,因为它们可以在一个视图中多次重复使用。如果复合组件自己的 ID 未添加到前面,则会导致组件树中出现重复的 ID。
在真正的自定义组件中,您可以完全控制客户端 ID。