ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。
このトピックでは、次の項目について説明します。
次のダイアグラムに、Strutsアプリケーションとモデル1アプリケーションに対して実行されるADFライフサイクルの各フェーズの順序を示します。ダイアグラム内でフェーズをクリックすると、その詳細が表示されます。
ライフサイクルは、アプリケーション全体または個別ページについてカスタマイズできます。詳細は、このトピックの最後にある「関連項目」を参照してください。
ADFライフサイクルの各フェーズは、次のクラス内で定義されます。
oracle.adf.controller.v2.lifecycle.Phases
すべてのフェーズの処理は、次のクラス内で定義されます。
oracle.adf.controller.v2.lifecycle.PageLifecycleImpl
以降の各項では、各フェーズおよび判断点に対するアクションについて説明します。
第1フェーズは、コンテキストを初期化することです。コンテキストは、次のクラスのインスタンスです。
oracle.adf.controller.v2.context.LifecycleContext
.
これにより、コンテキスト内の関連するリクエスト、バインディング・コンテナおよびライフサイクルの値が設定されます。ページ定義ファイルを使用してbindingContainerが作成されます。これは、リクエストされたページのページ定義の実行時表現です。
このフェーズでは、データ・モデルを準備して初期化する機会が与えられます。ページ定義に含まれているページ・パラメータがすべて設定されます。ページ定義の実行可能セクションにエントリがあれば、そのエントリは対応するメソッドの起動に指定の順序で使用されます。
準備されたモデル値の参照、またはバインディング・コンテナにあるバインディングの値の更新を必要とする場合は、このメソッドをオーバーライドして、スーパークラスをコールした後で必要な参照または更新を実行できます。
前ページのバインディング・コンテナが一致しない場合、このフェーズではフォワード連鎖に含まれる前ページからの更新が適用される場合があります。
このフェーズでは、HTMLフォームからポストされたかURLに追加されたリクエスト・パラメータがあれば、それが処理されます。リクエスト・パラメータから、関連するアクション・バインディングの候補を使用してイベント・リストが作成されます。また、このフェーズでは、ページ定義内の属性バインディングのリストに適用されるリクエスト・パラメータのリストが解決されます。その結果、新規の値で更新する必要のあるバインディングのリストであるupdatedValues
リストとなります。このリストは「モデルの更新」フェーズで使用されます。
このフェーズでは、「入力値の適用」フェーズで作成されたupdatedValues
リストがモデルにより検証されます。
このフェーズでは、データ・モデルがリクエストで発行された値で更新されます。それぞれの値がバインディング・コンテナに適用されます。
このフェーズでは、現在のライフサイクルに関連するバインディング・コンテナに対してコールすることで、モデルの更新が検証されます。検証エラーがある場合は、実行が「レンダリングの準備」フェーズで続行されます。
このフェーズでは、「入力値の適用」フェーズで作成されたアクション・バインディング・リスト内のイベントが処理されます。
メソッドprocessComponentEvents()
では、自分で作成して名前を付けた名前付きイベントと、ページにドロップしたデータ・バインディングに関連付けられているイベント(アクション・バインディング)の両方を処理します。
Strutsベース・アプリケーションに使用する独自の名前付きイベントの作成の詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。
JSFアプリケーションにおけるイベントの使用方法については、「JSFでのイベントおよびイベント・リスナーの使用」を参照してください。
このフェーズでは、モデルに対するランタイム・メタデータの変更がコミットされます。このフェーズは、ナビゲーションで表示する新規ビューが強制的に選択される場合にも、「レンダリングの準備」フェーズの前にコールされます。
ライフサイクルでページの処理が完了すると、ページがレンダリングのために送信されます。すべての登録済リスナーに送信されるprepareRender
イベントを使用して、レンダリングが発生しようとしていることと、レンダリングの開始前にデータの準備または処理を最適化できることを、バインディングに通知できます。
バインディング・コンテナがリフレッシュされ、検証フェーズで発生した変更が可能になります。prepareRenderイベントは、すべての登録済リスナーに送信されます。
モデル1アプリケーションの場合、このフェーズではリクエストがフォワードされるか、レスポンスがリダイレクトされます。
Oracle ADFデータ・コントロールについて
Oracle ADFコントローラについて
Oracle ADFライフサイクルについて
アプリケーションのOracle ADFライフサイクルのカスタマイズ
ページのOracle ADFライフサイクルのカスタマイズ
Copyright © 1997, 2006, Oracle. All rights reserved.