JSFナビゲーション・ルールについて

各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つのJSFビューに対するナビゲーション・ルール

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構成ファイルのルールがまとめて評価されます。ルールの評価方法の詳細は、「JSFナビゲーション・ルールの評価について」を参照してください。

ルールの重複

特定のルールを適用するページを、異なる形式の<from-view-id>を使用して定義する方法はいくつかあるため、ルールの階層や重複したルールを定義できます。

ルールの階層を定義することで、特定のナビゲーション・ケースが選択されて特定のページに確実に移動しますが、一般的なケース(例: 「ホーム」や「ヘルプ」ボタンのクリック)はアプリケーション全体にわたって同じように処理されます。

次のような<from-view-id>値の階層を使用できます。


JSFアプリケーションでのナビゲーションについて
JSFナビゲーション・ケースについて
JSFナビゲーション・ルールの評価について
JSF編集ツールについて

JSFナビゲーション・ルールの作成および編集