2

<ui:component>?で作成された複合コンポーネントのデフォルト ID を定義することができます。

で 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 に答える