JSFでカスタムコンポーネントを作成するには、UIComponentを拡張するクラスを作成し、そのコンポーネントタイプをJSFに登録する必要があります(例:@FacesComponent)。このコンポーネントとその属性をファセットページで使用するには、タグ記述ファイルと呼ばれる特別なファイルでコンポーネントをファセットタグにリンクする必要があります。
<tag>
<tag-name>test</tag-name>
<component>
<component-type>local.test.component_type</component-type>
</component>
</tag>
わかりましたが、タグクラス(およびタグハンドラー)の使用と混同しています。mojarraソースコードを見ると、すべてのhtml基本コンポーネントは、UIComponentELTagを拡張するコンポーネントタグクラスを使用して、タグライブラリ記述ファイルで宣言されています。例えば:
<tag>
<name>commandButton</name>
<tag-class>
com.sun.faces.taglib.html_basic.CommandButtonTag
</tag-class>
</tag>
UIComponentELTagのJSFAPIを見てください:
UIComponentELTagは、そのスーパークラスを特殊化して、ELAPI式から値を取得するプロパティを許可します。
このタグは、Facesバージョン1.2およびJSPバージョン2.1コンテナで使用するために設計されています。
次に、問題は、UIComponentELTagを拡張するクラスを使用して、コンポーネントをリンクするのではなく、タグ属性をカスタムコンポーネントにリンクする必要がある場合です。タグクラスを使用しない場合、コンポーネントはJSPページまたは以前のJSFバージョンでは使用できず、JSFフェイスレットでのみ機能しますか?