我在我的复合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:我们将分隔符从:改为:
答案 0 :(得分:3)
症状表明实际根本没有自定义组件,而是复合组件,并且您已从NamingContainer
更改了:
分隔符由于某种原因导致_
。
复合组件本身就是naming containers,并在其所有子项的ID前面加上自己的ID。原因很简单,因为它们可以在一个视图中重复使用多次。如果未预先组合复合组件自己的ID,则会在组件树中导致重复的ID。
在真实的自定义组件中,您可以完全控制客户端ID。