1

我在我的复合 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:我们将分隔符从 : 更改为 _

4

1 回答 1

3

这些症状表明您实际上根本没有自定义组件,而是一个复合组件,并且您出于某种原因将NamingContainer分隔符从:更改为。_

复合组件本身就是命名容器,并在其所有子组件的 ID 前面加上自己的 ID。原因很简单,因为它们可以在一个视图中多次重复使用。如果复合组件自己的 ID 未添加到前面,则会导致组件树中出现重复的 ID。

真正的自定义组件中,您可以完全控制客户端 ID。

也可以看看:

于 2012-11-19T12:40:40.253 回答