可以为复合组件定义默认ID吗?

时间:2013-04-24 19:19:03

标签: jsf jsf-2 composite-component

可以为使用<ui:component>

创建的复合组件定义默认ID

即使我在<ui:component>中设置了ID,当在页面中呈现组件时,它也没有使用定义的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>     
    ...

1 个答案:

答案 0 :(得分:3)

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

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

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