2

可以为使用创建的复合组件定义默认 ID <ui:component>

即使我在 中设置了 ID <ui:component>,当组件在页面中呈现时,它也不会使用定义的 ID,并且从它继承的子代具有自动生成的 ID,而不是定义的 ID。

<ui:component 
    id="companySearch"
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:cc="http://java.sun.com/jsf/composite"
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core">

    <cc:interface>
    </cc:interface>

    <cc:implementation>     
    ...
4

1 回答 1

3

您需要在id组件标签声明的属性中指定它。

<my:compositeComponent id="companySearch" ... />

复合组件即NamingContainer允许它可以在同一个视图中多次使用,而具有固定 ID 的子组件不会导致“重复组件 ID”错误。NamingContainer组件将其 ID 附加到孩子的 ID。

于 2013-04-24T19:24:47.697 回答