各JSFナビゲーション・ルールでは、次のいずれかからのナビゲーションを定義できます。
ナビゲーション・ルールは、複数のJSF構成ファイルに定義することもできます。通常は、1つのルールで1つのページからのリンクのケースすべてを処理します。ただし、パターンを使用するルールやグローバル・ルールを定義できるため、一連のルールを重複して定義できます。これについては、次の各項で説明します。
JSFナビゲーション・ルールの一般的な形式は次のとおりです。
<navigation-rule>
<from-view-id>page-or-pattern</from-view-id>
<navigation-case>
<from-action>action-method</from-action>
<from-outcome>outcome</from-outcome>
<to-view-id>destination-page</to-view-id>
</navigation-case>
<navigation-case>
...
</navigation-case>
</navigation-rule>
1つのページからのリンクに対するナビゲーション・ルールでは、そのページを<from-view-id>
要素として指定します。
たとえば、アプリケーションのWelcomeページwelcome.jsp
からのすべてのリンクには、ナビゲーション・ルールで次の形式の<from-view-id>
要素を指定します。
<navigation-rule>
<from-view-id>/welcome.jsp</from-view-id>
...
</navigation-rule>
ナビゲーション・ルールを使用すると、異なる複数のページからのナビゲーション・リンクを定義できます。たとえば、アプリケーション内の一部のページに、共通する一連のリンクがある場合(例: メニュー・バーからのリンク)、すべてのページに適用する1つのルールを使用できます。ルールに含めるページはパターンを使用して識別します。この場合、パターンの最後の項目は、ワイルドカード文字*である必要があります。
JSFナビゲーション・ルールでのパターンの一般的な使用方法は、特定のディレクトリ内の全ページを識別することです(例: /intro/*
)。
<navigation-rule>
<from-view-id>/products/*</from-view-id>
...
</navigation-rule>
グローバル・ナビゲーション・ルールは、アプリケーション内の全ページに適用されます。グローバル・ナビゲーション・ルールを定義するためには、全ページを定義するパターン(*
など)を<from-view-id>
に対して使用するか、すべての<from-view-id>
を除外できます。いずれの場合も、ルールはアプリケーション内の全ページに適用されます。たとえば、アプリケーションで1つのルールを定義し、そのアプリケーションのホーム・ページにユーザーを戻す全ページに適用できます。このようなルールではナビゲーション・ケースを識別する必要がなく、ルールが起動されるのは、事前定義のナビゲーション・ルールやケースがないナビゲーション・ケースが発生した場合のみとなります。
このようなナビゲーション・ルールの場合は、発生場所に関係なく、処理するケースを単に識別します。次のような構成を使用します。
<navigation-rule>
<navigation-case>...</navigation-case>
<navigation-case>...</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>...</navigation-case>
<navigation-case>...</navigation-case>
</navigation-rule>
次に例を示します。
<navigation-rule>
<navigation-case>
<to-view-id>index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
ナビゲーション・ルールの評価方法の詳細は、「JSFナビゲーション・ルールの評価について」を参照してください。
アプリケーションで複数のJSF構成ファイルを使用する場合、JSFではアプリケーションの構成設定を事前定義の順に検索してロードします。「JSFアプリケーション構成について」を参照してください。
通常、各JSF構成ファイル内のナビゲーション・ルールは、アプリケーションの特定の領域におけるページ間のナビゲーションに対してのみ評価されます。ただし、複数のJSF構成ファイルにルールを指定して、アプリケーションの任意のページに適用することもできます。特に、各JSF構成ファイルでは、ホーム・ページに戻る、ヘルプ情報を表示するなど、一般的なナビゲーション機能に対してルールを定義できます。
この場合は、実行時にナビゲーション・ケースが発生すると、すべてのJSF構成ファイルのルールがまとめて評価されます。ルールの評価方法の詳細は、「JSFナビゲーション・ルールの評価について」を参照してください。
特定のルールを適用するページを、異なる形式の<from-view-id>
を使用して定義する方法はいくつかあるため、ルールの階層や重複したルールを定義できます。
ルールの階層を定義することで、特定のナビゲーション・ケースが選択されて特定のページに確実に移動しますが、一般的なケース(例: 「ホーム」や「ヘルプ」ボタンのクリック)はアプリケーション全体にわたって同じように処理されます。
次のような<from-view-id>
値の階層を使用できます。
/products/select.jsp
(1ページのみに適用)
/product/*
(1つのディレクトリ内の全ページに適用)
/*
(全ページに適用)
<from-view-id>
値がない場合は、デフォルト・ルールとして機能します。
JSFアプリケーションでのナビゲーションについて
JSFナビゲーション・ケースについて
JSFナビゲーション・ルールの評価について
JSF編集ツールについて
Copyright © 1997, 2007, Oracle. All rights reserved.