PageHandler パーツ

EGL ページ・ハンドラー は、ページ・コード の 1 つの例です。これはユーザーの Web ページとのランタイム相互作用を制御し、以下のいずれのタスクでも実行できます。

最も簡単な方法としては、Page Designer で JSP ファイルをカスタマイズしてページ・ハンドラーを作成する方法です。詳しくは、『EGL の Page Designer サポート 』を参照してください。

ページ・ハンドラーには、変数と以下のようなロジックが組み込まれます。

ページ・ハンドラーの変数は、2 とおりの方法でアクセスされます。

pageHandler パーツはシンプルにする必要があります。 パーツには、範囲検査のような単純なデータ妥当性検査が組み込まれる場合がありますが、他のプログラムを呼び出して、複合ビジネス・ロジックを実行することをお勧めします。例えば、データベース・アクセスは、呼び出し先プログラムに対して予約される必要があります。

ページ・ハンドラーに関連した出力

ページ・ハンドラーを保管すると、EGL は JSP ファイルをプロジェクト・フォルダー WebContent¥WEB-INF に配置します。ただし、次の場合に限られます。
  • JSP ファイル名を指定するページ・ハンドラーの view プロパティーに値を割り当ててある
  • フォルダー WebContent¥WEB-INF に、指定した名前の JSP ファイルが入っていない

EGL は JSP ファイルを上書きしません。

ワークベンチ設定で、保管時の自動ビルドを設定している場合、ページ・ハンドラーを保管するたびにページ・ハンドラーの生成が行われます。いずれの場合も、ページ・ハンドラーを生成すると、以下のオブジェクトで出力が構成されます。
  • ページ Bean は、データを含み、Web ページの初期化、データ妥当性検査、およびイベント処理サービスを行う Java™ クラスです。
  • <managed-bean> エレメントは、プロジェクト内の JSF 構成ファイルに配置され、実行時にページ Bean を識別します。
  • JSF アプリケーション構成ファイル中、<navigation-rule> エレメントが作成され、 JSF 出力 (ページ・ハンドラーの名前) を呼び出し先の JSP ファイルに関連付けます。
  • ページ・ハンドラーを保管した時点と同じ状態での JSP ファイル。

パーツ・ハンドラーによって使用されるすべてのデータ・テーブルおよびレコードも生成されます。

検証

JSP ベースの JSF タグがデータ変換、検証、またはイベント処理を行う場合、JSF ランタイムは、ユーザーが Web ページを処理依頼するとすぐに必要な処理を行います。エラーが検出された場合、JSF ランタイムは、ランタイム・ページ・ハンドラーに制御を渡さずに、ページを再表示します。ただし、ページ・ハンドラーが制御を受け取ると、ページ・ハンドラーは一連の EGL ベースの検証を行います。

EGL ベースの検証は、ページ・ハンドラーを宣言した場合に以下の詳細を指定すると行われます。
  • 個々の入力フィールドのエレメントの編集 (最小入力長さなど)。
  • 個々のフィールドの入力ベースの編集 (文字、数値)。
  • DataTable パーツ』で説明しているような、個々の入力フィールドの DataTable の編集 (範囲、一致の有効、および一致の無効)。
  • 個々の入力フィールドの編集機能。
  • ページ・ハンドラーの編集機能全体。
ページ・ハンドラーは、ユーザーが値を変更した項目についてのみ、以下の順序で編集を監視します。
  1. すべての基本的な入力ベースの編集 (一部が失敗した場合でも)
  2. 前の編集が成功した場合、すべてのテーブルの編集 (一部が失敗した場合でも)
  3. 前の編集が成功した場合、すべてのフィールド編集機能 (一部が失敗した場合でも)
  4. 前の編集がすべて成功した場合、pageHandler 編集機能

ページ項目プロパティー validationOrder は、個々の入力が編集され、フィールド・バリデーター関数が呼び出される順序を定義します。

validationOrder プロパティーが指定されない場合、デフォルトは、ページ・ハンドラーに定義された項目の順序 (上から下) になります。ページ・ハンドラーの項目の一部で (すべてではなく) validationOrder が指定されている場合、validationOrder プロパティーによる全項目の検証が指定順で最初に行われます。続いて、validationOrder プロパティーを使用しない項目の検証が、ページ・ハンドラーの項目順 (上から下) で行われます。

ランタイム・シナリオ

このセクションでは、ユーザーと Web アプリケーション・サーバーとの実行時の対話についての技術的概要を示します。

ユーザーがページ・ハンドラーによってサポートされる JSP を呼び出すと、以下のステップが実行されます。
  1. Web アプリケーション・サーバーは、以下のように環境を初期化します。
    1. セッション・オブジェクトを構成して、ユーザーがアクセスするアプリケーションで複数の対話にわたってデータを保存します。
    2. 要求オブジェクトを構成して、ユーザーの現在の対話のデータを保存します。
    3. JSP を呼び出します。
  2. JSP は、以下のように一連の JSF タグを処理して、Web ページを構成します。
    1. ページ・ハンドラーのインスタンスの作成、ユーザー指定引き数による onPageLoad 関数 (存在する場合) の呼び出し、および要求オブジェクトへのページ・ハンドラーの配置を行います。
    2. Web ページに組み込むために、要求オブジェクトおよびセッション・オブジェクトに保管されているデータにアクセスします。
    注: pageHandler パーツには、onPageLoadFunction と呼ばれるプロパティーがあります。これは、JSP の開始時に呼び出されるページ・ハンドラー関数を識別するものです。 この関数は、渡されたユーザー提供の任意の引き数を自動的に検索します。また、他のコードを呼び出すことや、追加のデータを Web アプリケーション・サーバーの要求またはセッション・オブジェクトに配置することができます。 ただし、この関数は、他のページに制御を転送したり、ページをユーザーに最初に表示するときにエラー・メッセージを表示することはできません。
  3. JSP はユーザーに Web ページを処理依頼し、Web アプリケーション・サーバーは、セッション・オブジェクトおよび JSP はそのままで、応答オブジェクトを破棄します。
スクリーン内のフィールドにあるユーザー提供のデータが HTML <FORM> タグと関連付けられており、書式を処理依頼する場合は、以下のステップが実行されます。
  1. Web アプリケーション・サーバーは、以下のように環境を再初期化します。
    1. 要求オブジェクトを構成します。
    2. 処理依頼した書式の受信データを検証するため、ページ Bean に配置します。
    3. JSP を再度呼び出します。
  2. JSP は、以下のように一連の JSF タグを処理して、受信データをページ Bean に格納します。
  3. ランタイム・ページ・ハンドラーは、以下のようにデータを検証します。
    1. pageHandler データ宣言の指定に従って、比較的初歩的な編集 (最小入力長さなど) を行います。
    2. pageHandler データ宣言の指定に従って、項目に固有の任意の検証機能を呼び出します。
    3. 別のフィールドの内容を基にして、単一のフィールドを少なくとも部分的に検証する場合、必要に応じて pageHandler バリデーター機能を呼び出します。

    (検証の詳細については、前のセクションを参照してください。)

  4. エラーが発生した場合、EGL ランタイムがエラーを JSF キューに入れ、JSP は Web ページを組み込みメッセージとともに再表示します。エラーが発生しなかった場合の結果は、以下のようになります。
    1. ページ Bean に保管されたデータは、レコード Bean に書き込まれる
    2. 以降の処理は、ユーザーがクリックしたボタンまたはハイパーリンクに関連付けられている JSF タグで識別されるイベント・ハンドラーによって決定される

イベント・ハンドラーは、ランタイムの JSF ベースの構成ファイル内のマッピングを識別する JSF ラベルに処理を送ることができます。次に、呼び出すオブジェクトが JSP (通常は、EGL ページ・ハンドラーに関連付けられている JSP)、またはサーブレットのどれであるかを、このマッピングが識別します。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.