Oracle ADFで作成するデータ・アクションおよびデータ・ページでは、oracle.adf.controller.lifecycle.Lifecycle
インタフェースの実装が使用されます。このインタフェースには、Webページのアクションをモデル・レイヤー内のデータ・バインディングに接続する際に必要なフックが用意されています。Oracle ADFアプリケーションがモデル1フレームワークまたはモデル2フレームワークのいずれに基づく場合でも、このライフサイクル・メソッドをオーバーライドして、Oracle ADFアプリケーションの動作をカスタマイズできます。
注意: 多くの場合、モデル2では名前付きのイベントを作成して、データ・アクションまたはデータ・ページで必要なカスタム動作を実行できます。これにより、ライフサイクル・メソッド自体のサブクラスを作成する必要はなくなります。詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。
handleLifecycle()
メソッドは、一連の操作を一定の順序でコールし、ライフサイクル内のほとんどの動作を実行します。次の図は、oracle.adf.controller.lifecycle.PageLifecycle
クラス内のメソッドで実行されるステップを示しています。図に続く表では、各ステップで処理される内容について説明しています。
注意: 次のステップの順序は変更できませんが、ステップ内の動作はカスタマイズできます。
ステップ | 説明 |
---|---|
1. コンテキストの初期化 |
いずれの場合も、 |
2. イベント・リストの作成 |
次に、 |
3. モデル・データ・バインディングの準備(存在する場合) |
この時点で、 ライフサイクルがモデル・バインディングに関連していない場合があることに注意してください。その場合、ライフサイクルはユーザー・インタフェースでのみ動作するイベントをコールできます。また、データ・バインディングを使用していないカスタム・ナビゲーション・イベントをコールする場合もあります。たとえば、ユーザーに対してWebアプリケーションのHTMLページを表示するための「ヘルプ」ボタンに関連付けられるイベントを作成する場合です。 関連するモデル・バインディングが存在しない場合、 |
4.モデルの更新が許可されているどうかの確認 |
モデルの更新が許可されていないイベントもあります。たとえば、イベントがデータ変更のロールバックを実行する場合は、モデルの更新を許可しません。 handleLifecycle()メソッドは、ライフサイクルに対して |
5. モデルの更新の処理 |
この時点で、 |
6. モデルの更新の検証 |
この時点で、 |
次に、 |
|
8. カスタム・メソッドのコール(Strutsのみ) | Strutsアプリケーションの場合のみ、親クラスのサブクラスを作成することなく、アクション、データ・アクションまたはデータ・ページにメソッドをドラッグ・アンド・ドロップできます。handleLifecycle() はライフサイクルに対してinvokeCustomMethod() をコールして、これらのカスタム・メソッドをこの時点で実行します。
詳細は、「データ・アクションを使用したビジネス・サービス・メソッドの実行」を参照してください。 |
9. バインディング・コントロールのリフレッシュ |
このステップでは、現在のライフサイクルに関連付けられているバインディング・コンテナに、アクションまたはページのモデルの更新がすべて完了したことが通知されます。この時点で、 |
10. ディスパッチしてフォワード |
この時点で、 |
ライフサイクル・インタフェースとそれを実装するクラスの詳細は、次のJavadocを参照してください。
oracle.adf.controller.lifecycle.Lifecycle
oracle.adf.controller.lifecycle.PageLifecycle
oracle.adf.controller.struts.actions.StrutsPageLifecycle
oracle.adf.controller.struts.actions.StrutsUixLifecycle
また、アプリケーションのテクノロジ・スコープ内にあるクラスのソース・コードは、JDeveloperのメイン・メニューから「ナビゲート」->「Javaクラスに移動」を選択して表示できます。ダイアログのテキスト・フィールドにクラス名を入力し、「OK」をクリックします。
Oracle ADFライフサイクルについて
Oracle ADFでの名前付きイベントの使用
データ・アクションを使用したビジネス・サービス・メソッドの実行
Copyright © 1997, 2004, Oracle. All rights reserved.