JSF の forward に関する考慮事項

JSF のコンテキストでは、EGL forward ステートメントは、Web ページにコントロールを渡すため、または Web プロジェクトの Faces 構成ファイル内のナビゲーション規則にコントロールを渡すために使用されます。 Faces 構成ファイルには、規則と、それらの規則が指し示すページがリストされています。 規則では、JSF ハンドラーに転送する場合、この規則の名前は JSF ハンドラーの名前と同じになります。 ナビゲーション規則は、サーブレット、Web ページ、または Java™ プログラムに対して示されている場合もあります。 詳しくは、ナビゲーション規則に基づく Web ページ間のナビゲートを参照してください。

forward 文は、次のアクションを実行します。
  1. リカバリー可能リソースのコミット、ファイルのクローズ、およびロックの解除
  2. 指定されたナビゲーション規則にコントロールを移動させる。
  3. forward 文を実行しているコードを終了する。

JSF ハンドラーの onConstructionFunction プロパティー、onPreRenderFunction プロパティー、または onPostRenderFunction プロパティーで定義された関数では、 forward to URL を使用することはできますが、forward to label は使用できません。

構文

forward 文の構文図
parameter
JSF ハンドラーまたは他のページやプログラムに渡される変数。 パラメーターとその対応する引数の名前は、いずれの場合にも同じでなければなりません (この名前は、Web アプリケーション・サーバーに引数値を保存し、それを取り出すときのキーとして使用されます)。 ページ・ハンドラーに渡すパラメーターには、JSF ハンドラーの onConstructionFunction プロパティーに指定された関数の引数との互換性が必要です。 リテラルを渡すことはできません。
navigationRule
Faces 構成ファイル (faces-config.xml) のナビゲーション規則を指定します。 この規則を指定すると、呼び出すオブジェクトが、JSP (通常は、EGL JSF ハンドラーに関連付けられているもの)、EGL プログラム、EGL 以外のプログラム、またはサーブレットのいずれであるかを識別します。 label という語はオプションで、navigationRule はテキスト式です。
pageURL
URL を指定し、呼び出し先の JSF ハンドラー、VGWebTransaction プログラム、またはサーブレットで使用する値のストリングを (必要に応じて) 指定します。pageURL はテキスト式です。URL が絶対である (ドメイン名を含む) 場合は、EGL は forward ステートメントを HTTP リダイレクトとして実装します。URL が相対である (同じサーバー上にある) 場合は、以下の例に示すように、式に -redirect キーワードが含まれている場合を除き、EGL は forward ステートメントを HTTP ディスパッチとして実装します。
forward to URL "/TestProject/TestPage2.html -redirect";

以下の例では、Faces 構成ファイルの「myPage」という名前のナビゲーション規則にコントロールを移動しています。 次に、この規則は、コントロールを受け取る myPage.jsp という名前の JSP ハンドラーをポイントします。
forward to label "myPage";

フィードバック