ナビゲーション・ペイン・コンポーネントは、一連のコマンド・ナビゲーション・アイテム・コンポーネントを子として受け入れます。各コマンド・ナビゲーション・アイテム・コンポーネントは1つのメニュー・アイテムを表します。次に例を示します。
<af:navigationPane level="0" hint="buttons"..>
<af:commandNavigationItem text="Home"../>
<af:commandNavigationItem text="Help"../>
</af:navigationPane>
ただし、ADFメニューを使用する場合は、一連のコマンド・ナビゲーション・アイテム・コンポーネントを子として挿入しません。かわりに、ナビゲーション・ペイン・コンポーネントをADFメニュー・モデルにバインドし、ナビゲーション・ペイン・コンポーネントのnodeStamp
ファセットを使用します。
ADFメニュー・モデルにバインドするには、プロパティ・インスペクタでナビゲーション・ペインに対してvalue
属性とvar
属性を設定します。value
属性には、ルート・メニューに対して構成したマネージドBeanの名前を指定する必要があります(Bean名はadfc-config.xml
に定義されています)。共有ノードを介して参照されるメニュー・モデルのマネージドBean名は使用できません。var
属性の値は、root_menu.xml
ファイルのアイテムを参照する際に使用するEL変数名です。任意の名前をEL変数名として使用できます。
次に、個々のコマンド・ナビゲーション・アイテム・コンポーネントを使用してナビゲーション・アイテムを表すのではなく、1つのコマンド・ナビゲーション・アイテムのみをナビゲーション・ペイン・コンポーネントのnodeStamp
ファセットに挿入します。EL変数名menuInfo
を使用して、単一のコマンド・ナビゲーション・アイテムがEL式を介してADFメニュー・モデルのプロパティを参照します。実行時にnodeStamp
は、そのレベルの適切な数のナビゲーション・アイテムをスタンプ・アウトします。
ナビゲーション・ペインおよびコマンド・ナビゲーション・アイテムの完全なXMLコードは、次のようになります。このコードでは、ルート・メニュー(root_menu.xml
)からメタデータを使用してレベル0
のナビゲーション・アイテムが生成されます。
<af:navigationPane var="menuInfo" value="#{root_menu}"
level="0" hint="buttons"..>
<f:facet name="nodeStamp">
<af:commandNavigationItem text="#{menuInfo.label}"
action="#{menuInfo.doAction}"
icon="#{menuInfo.icon}"
destination="#{menuInfo.destination}"../>
</f:facet>
</af:navigationPane>
nodeStamp
ファセットとその単一のaf:commandNavigationItem
タグは、次のように機能します。
menuInfo
を使用して、af:commandNavigationItem
属性のEL式は、ADFメニュー・モデルの適切なメニュー・アイテム・プロパティを参照します。たとえば、EL式#{menuInfo.label}
は、ナビゲーション・アイテムに使用する適切なラベル・テキストを取得し、EL式#{menuInfo.doAction}
は、同じアイテムについて定義されているアクション結果を評価します。これらのEL式では、階層内のアイテムのレベルは変更されません。
Copyright © 1997, 2009, Oracle. All rights reserved.