宣言コンポーネントにはファセット、属性およびメソッドを指定できます。これらを使用して、ページ作成者は、宣言コンポーネントを個別のページまたは1つのページの個別部分で使用する方法を構成できます。たとえば、ページ作成者が宣言コンポーネントの個別ボタンのラベルを変更できるように、属性を追加できます。
宣言コンポーネントには、ファセット定義、属性またはメソッド(または3種類すべて)がある場合とない場合があります。これは、宣言コンポーネント・メタデータの作成時には、提供するコンポジット・コンポーネント機能に応じて、ファセット定義、属性またはメソッドを追加する必要がない場合があることを意味します。
ページ・テンプレートと同様に、宣言コンポーネントでは、コンポジット・コンポーネント内に領域(ファセット)を定義できます。この領域には、ページ作成者が宣言コンポーネントを使用してページの部分を作成するときに、コンテンツを追加できます。ページ作成者が独自のコンテンツを宣言コンポーネントに追加できるようにするには、今後のコンテンツ用のプレースホルダとして1つ以上のファセットを定義します。たとえば、宣言コンポーネントにパネル・ヘッダー・コンポーネントを含めて、ページ作成者がそのパネル・ヘッダー内の任意の場所に独自のコンテンツを追加できるようにするには、pheader-contents
という名前のファセット定義を追加します。後で宣言コンポーネントのレイアウトを設計するときに、ページ作成者がコンテンツをパネル・ヘッダー・コンポーネントにドロップできるように、pheader-contents
ファセット名を参照するaf:facetRef
を備えたaf:facetRef
タグをaf:panelHeader
コンポーネントに挿入します。次のキュー・カードでは、af:facetRef
タグを使用してコンテンツを追加できる場所を指定します。
コンポジット・コンポーネント内のコンポーネントのプロパティをページ作成者が設定または変更できるようにするには、宣言コンポーネントに1つ以上の属性を定義します。たとえば、ページ作成者がパネル・ヘッダー・コンポーネントに独自のタイトルを設定できるようにするには、pheader-title
という名前の属性とjava.lang.String
タイプを追加します。後で宣言コンポーネントのレイアウトを設計するときに、ページ作成者が独自のパネル・ヘッダー・タイトルを設定できるように、EL式を、af:panelHeader
のtext
プロパティに挿入します。この式は、宣言コンポーネントのvar
属性を使用してpheader-title
を参照します。次のキュー・カードで、宣言コンポーネントの属性を参照するEL式を入力します。
宣言コンポーネントに、ページ作成者がメソッドを設定できるプロパティを備えたコンポーネントが含まれている場合は、1つ以上のメソッドを定義します。たとえば、宣言コンポーネントにコマンド・ボタンがあり、ページ作成者が独自のアクション・リスナー・メソッドを設定する場合は、method1
という名前のメソッドとメソッド・シグネチャのvoid·method(javax.faces.event.ActionEvent)
を追加できます。後で宣言コンポーネントのレイアウトを設計するときは、ボタン・コンポーネントのactionListener
プロパティにEL式を挿入します。この式は、宣言コンポーネントのcomponentVar
属性を使用してmethod1
を参照します。次のキュー・カードで、宣言コンポーネントのメソッドを参照するEL式を入力します。
Copyright © 1997, 2009, Oracle. All rights reserved.