Oracle ADFページのライフサイクルについて

ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。このライフサイクルを使用して、ADFデータ・コントロールを使用するJSF、Strutsまたはモデル1の各アプリケーションでADFモデルをサポートします。

このトピックでは、次の項目について説明します。

ADFライフサイクルの概要

ADFモデルを使用するWebページはすべて、ページのレンダリング前に、適切に定義された多数のフェーズを通過します。ADFページのライフサイクルでは、必要な各フェーズと実行順序を定義します。ライフサイクル・フェーズの詳細は、「Oracle ADFライフサイクルのフェーズについて」を参照してください。

Oracle ADFで作成するアプリケーションは、Oracle ADFライフサイクルの実装を使用します。ライフサイクルの各フェーズの実行順序は、ライフサイクル・プロセッサにより制御されます。また、ライフサイクルでは、JSFアプリケーションなどでライフサイクルの拡張に使用されているリスナーに、適切なフェーズの前後に確実に通知されます。

Webページに必要なデータは、ページ定義に定義します。データを必要とするページごとに、固有のページ定義ファイルが存在します。詳細は、「ADF固有のプロジェクト・ファイルについて」を参照してください。

ADFライフサイクルでは、ページのページ定義(ページのデータに対するバインディングを定義)を使用して、レンダリングするデータを準備します。データはページのレンダリング前にプールされ、ローカルに格納されます。ライフサイクルにより、Webページのレンダリング前にデータベースへの追加ラウンドトリップが発生しなくなり、レンダリング・プロセス中のアプリケーション・パフォーマンスが向上します。

データ・バインディング

各Webページには、ページ定義で定義済のADFコントロール・バインディングにバインドされているUIコンポーネントがレンダリングされます。

アプリケーション用のWebページを作成するときに、そのページのページ定義ファイルを作成してデータ・バインディングを定義します。アプリケーションのDataBindingsファイルでは、アプリケーションの全ページのページ定義ファイルを識別します。

ページのライフサイクルの実行時に、ライフサイクルの存続時間中はページ定義が1つ使用されます。このページ定義は、WebページのUIコンポーネントにより参照されます。各ライフサイクルでは特定のページ定義が使用されます。1つのリクエスト中に複数のライフサイクルを実行できますが、少なくともその1つで、レンダリング対象ページに使用するページ定義を準備する必要があります。

JSFアプリケーション

JSFアプリケーションのページは、JSFページのライフサイクルの各フェーズをたどります。その際に多数のフェーズでADFライフサイクルのフェーズと同じ操作が実行されるため、ADFライフサイクルの一部のフェーズは不要であり、必要なフェーズを適切なJSFページのライフサイクルのフェーズと統合する必要があります。ADFライフサイクルのフェーズは、適切なJSFページのライフサイクルのフェーズの前または後に、一連のイベントの適切な位置で実行されます。JSFライフサイクルとADFライフサイクルの統合方法の詳細は、「JSFアプリケーションとOracle ADFコントローラについて」を参照してください。

JSFアプリケーションでは、次のクラスを使用します。

oracle.adf.controller.faces.lifecycle.FacesPageLifecycle

このクラスは、次に示すようにPageLifecycleクラスを拡張します。

JSFのADFページのライフサイクル・クラス

ライフサイクル・クラス階層のダイアグラムについては、「ライフサイクル・クラス」を参照してください。

Strutsアプリケーション

Strutsにはコントローラ機能が用意されており、ページのライフサイクルをWebページ外部のDataActionというカスタムStrutsアクションから実行できます。DataActionは、ADFライフサイクルを実行する操作をライフサイクル・プロセッサに委譲します。ページのページ定義ファイルは、DataBindingsファイル内で識別されます。ページ定義ファイルにより、ページのデータ・バインディングが定義されます。

Strutsアプリケーションでは、ページのページ・ライフサイクルを実装するStrutsPageLifecycleクラスを使用します。このクラスは、次の図に示すようにPageLifecycleを拡張します。

StrutsのADFページのライフサイクル・クラス

ライフサイクル・クラス階層のダイアグラムについては、「ライフサイクル・クラス」を参照してください。

モデル1アプリケーション

ライフサイクルは、ページの先頭にあるJSPタグ<adf:pagedefinition/>を使用してJSP内部から実行されます。

モデル1アプリケーションでは、次のクラスを使用します。

oracle.adf.controller.v2.lifecycle.PageLifecycleImpl

ライフサイクル・クラス階層のダイアグラムについては、「ライフサイクル・クラス」を参照してください。

ライフサイクル・クラス

すべてのライフサイクル・クラスは、ライフサイクル・コンテキストを使用して、ライフサイクル・メソッドで必要なパラメータを指定します。

次のダイアグラムに、oracle.adf.controller.v2.lifecycleパッケージ内のライフサイクル・クラスのクラス階層を示します。

ADFページのライフサイクル・クラス

これらのADFライフサイクル・クラスの動作をカスタマイズできます。ライフサイクル・メソッドはオーバーライドできますが、メソッドのコール順序は変更できません。

ライフサイクル・インタフェースと、それを実装するクラスの詳細は、次のJavadocを参照してください。

oracle.adf.controller.v2.lifecycle.Lifecycle

また、アプリケーションのテクノロジ・スコープ内にあるクラスのソース・コードまたはJavadocも表示できます。

テクノロジ・スコープ内にあるクラスのコードまたはJavadocを表示する手順は、次のとおりです。

  1. 「ナビゲート」「Javaクラスに移動」を選択します。

  2. ダイアログの「名前」フィールドにクラス名を入力するか、「参照」をクリックしてクラスを参照します。

  3. 「ソース」または「Javadoc」を選択して「OK」をクリックします。


Oracle ADFデータ・コントロールについて
Oracle ADFコントローラについて
Oracle ADFライフサイクルのフェーズについて

アプリケーションのOracle ADFライフサイクルのカスタマイズ
ページのOracle ADFライフサイクルのカスタマイズ