Initialize context phase Prepare model phase Apply input values phase Validate input values phase Update model phase Validate model updates phase Process conponent events phase Metadata commit phase Prepare render phase

Oracle ADFライフサイクルのフェーズについて

ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。

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

ADFライフサイクルのフェーズ

次のダイアグラムに、Strutsアプリケーションとモデル1アプリケーションに対して実行されるADFライフサイクルの各フェーズの順序を示します。ダイアグラム内でフェーズをクリックすると、その詳細が表示されます。

ADFライフサイクルのフェーズ

ライフサイクルは、アプリケーション全体または個別ページについてカスタマイズできます。詳細は、このトピックの最後にある「関連項目」を参照してください。

ADFライフサイクルのフェーズの実装

ADFライフサイクルの各フェーズは、次のクラス内で定義されます。

oracle.adf.controller.v2.lifecycle.Phases    

すべてのフェーズの処理は、次のクラス内で定義されます。

oracle.adf.controller.v2.lifecycle.PageLifecycleImpl    

以降の各項では、各フェーズおよび判断点に対するアクションについて説明します。

コンテキストの初期化(INIT_CONTEXT)

第1フェーズは、コンテキストを初期化することです。コンテキストは、次のクラスのインスタンスです。

oracle.adf.controller.v2.context.LifecycleContext.

これにより、コンテキスト内の関連するリクエスト、バインディング・コンテナおよびライフサイクルの値が設定されます。ページ定義ファイルを使用してbindingContainerが作成されます。これは、リクエストされたページのページ定義の実行時表現です。

モデルの準備(PREPARE_MODEL)

このフェーズでは、データ・モデルを準備して初期化する機会が与えられます。ページ定義に含まれているページ・パラメータがすべて設定されます。ページ定義の実行可能セクションにエントリがあれば、そのエントリは対応するメソッドの起動に指定の順序で使用されます。

準備されたモデル値の参照、またはバインディング・コンテナにあるバインディングの値の更新を必要とする場合は、このメソッドをオーバーライドして、スーパークラスをコールした後で必要な参照または更新を実行できます。

前ページのバインディング・コンテナが一致しない場合、このフェーズではフォワード連鎖に含まれる前ページからの更新が適用される場合があります。

入力値の適用(APPLY_INPUT_VALUES)

このフェーズでは、HTMLフォームからポストされたかURLに追加されたリクエスト・パラメータがあれば、それが処理されます。リクエスト・パラメータから、関連するアクション・バインディングの候補を使用してイベント・リストが作成されます。また、このフェーズでは、ページ定義内の属性バインディングのリストに適用されるリクエスト・パラメータのリストが解決されます。その結果、新規の値で更新する必要のあるバインディングのリストであるupdatedValuesリストとなります。このリストは「モデルの更新」フェーズで使用されます。

入力値の検証(VALIDATE_INPUT_VALUES)

このフェーズでは、「入力値の適用」フェーズで作成されたupdatedValuesリストがモデルにより検証されます。

モデルの更新(PROCESS_UPDATE_MODEL)

このフェーズでは、データ・モデルがリクエストで発行された値で更新されます。それぞれの値がバインディング・コンテナに適用されます。

モデル更新の検証(VALIDATE_MODEL_UPDATES)

このフェーズでは、現在のライフサイクルに関連するバインディング・コンテナに対してコールすることで、モデルの更新が検証されます。検証エラーがある場合は、実行が「レンダリングの準備」フェーズで続行されます。

コンポーネント・イベントの処理(PROCESS_COMPONENT_EVENTS)

このフェーズでは、「入力値の適用」フェーズで作成されたアクション・バインディング・リスト内のイベントが処理されます。

メソッドprocessComponentEvents()では、自分で作成して名前を付けた名前付きイベントと、ページにドロップしたデータ・バインディングに関連付けられているイベント(アクション・バインディング)の両方を処理します。

Strutsベース・アプリケーションに使用する独自の名前付きイベントの作成の詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。

JSFアプリケーションにおけるイベントの使用方法については、「JSFでのイベントおよびイベント・リスナーの使用」を参照してください。

メタデータのコミット(METADATA_COMMIT)

このフェーズでは、モデルに対するランタイム・メタデータの変更がコミットされます。このフェーズは、ナビゲーションで表示する新規ビューが強制的に選択される場合にも、「レンダリングの準備」フェーズの前にコールされます。

レンダリングの準備(PREPARE_RENDER)

ライフサイクルでページの処理が完了すると、ページがレンダリングのために送信されます。すべての登録済リスナーに送信されるprepareRenderイベントを使用して、レンダリングが発生しようとしていることと、レンダリングの開始前にデータの準備または処理を最適化できることを、バインディングに通知できます。

バインディング・コンテナがリフレッシュされ、検証フェーズで発生した変更が可能になります。prepareRenderイベントは、すべての登録済リスナーに送信されます。

モデル1アプリケーションの場合、このフェーズではリクエストがフォワードされるか、レスポンスがリダイレクトされます。


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

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