JSFページのライフサイクルでは、JSFページに必要なリクエスト処理フェーズがすべて処理されます。ページでADFデータ・コントロールを使用するためADFデータ・バインディングを使用する場合は、ADFライフサイクルからの追加フェーズが必要です。
ADFライフサイクルでは、モデルの処理に必要なADFライフサイクルの全フェーズが適切なタイミングで確実に実行されます。
このトピックでは、次の項目について説明します。
ADFライフサイクルでは、データ・モデルの準備と更新、モデル・レイヤーにあるデータの検証、ビジネス・レイヤーでのメソッドの実行が処理されます。ADFライフサイクルでは、ページ定義を使用してデータの収集と表示が管理されます。ページ定義により、データがプールされてローカルに格納されてからページがレンダリングされます。ライフサイクルにより、Webページのレンダリング前にデータベースへの追加ラウンドトリップが発生しなくなり、レンダリング・プロセス中のアプリケーション・パフォーマンスが向上します。
JSFページのライフサイクルの詳細は、「JSFページのライフサイクルについて」を参照してください。
ADFページのライフサイクルの詳細は、「Oracle ADFページのライフサイクルについて」を参照してください。
ライフサイクルは複数のフェーズにわかれています。2つのライフサイクルをともに機能させるには、JSFイベント・リスナー・メカニズムを使用して、ADFライフサイクルのフェーズをJSFライフサイクルのフェーズと統合します。ADFライフサイクルはADFフェーズ・リスナーを使用してフェーズ・イベントをリスニングします。これにより、適切なJSFフェーズの前後に適切なADFフェーズを実行できます。
ADFライフサイクルのフェーズは、その多くがすでにJSFページのライフサイクルで処理されているため、すべてが必須ではありません。次に例を示します。
ADFの「値の更新」ライフサイクル・フェーズで実行された操作は、JSFの「モデル値の更新」ライフサイクル・フェーズで処理されます。
ADFの「アクションの起動」フェーズで実行された操作は、JSFの「アプリケーションの起動」ライフサイクル・フェーズで処理されます。
次のダイアグラムに、ADF Facesコンポーネントを使用してADFアプリケーションにおけるページ・リクエストのライフサイクルを示します。これは、データ・バインディングに関係するJSFライフサイクルとADFライフサイクルのフェーズがどのように協調するかを示しています。
ADFの「モデルの準備」フェーズは、ビューが使用可能になった直後に実行する必要があるため、JSFの「ビューのリストア」フェーズのafterPhase
イベントで実行されます。
JSFには、コンポーネントのローカル値のチェックを目的としたバリデータを登録する機能が用意されています。この検証は、値がモデルに適用される前のJSFの「検証の処理」フェーズで発生します。モデルが新しい値で更新された後、モデルの検証がトリガーされる必要があります。これは、JSFの「モデル値の更新」フェーズのafterPhase
イベントで発生します。
ADFの「レンダーの準備」フェーズは、モデルに対して実行された全操作がビューのレンダリング前に確実に取得されるように、JSFライフサイクル中にできるかぎり後で実行する必要があります。そのため、レスポンスのレンダリング前に実行される必要があります。これは、JSFの「レスポンスのレンダリング」フェーズのbeforePhase
イベントで実行されます。
JSFページのライフサイクルの実行中に、レンダリング対象のビューが変わることがあります。たとえば、JSFの「アプリケーションの起動」フェーズ中に、アプリケーションのアクションにより戻された結果が、NavigationHandlerでレンダリング対象として新規のビューを選択する必要があることを意味する場合があります。ビューが変わる場合、最初のビューに関連付けられているモデルを中間層と同期化し、第2のビューに関連付けられているモデルを準備する必要があります(ADFの「モデルの準備」フェーズ)。
ADFデータ・コントロールにバインドされているADF FacesコンポーネントがJSFページに初めて挿入されるときに、JDeveloperはADF PhaseListenerをJSF構成ファイルに追加します。次に例を示します。
<lifecycle>
<phase-listener>
oracle.adf.controller.faces.lifecycle.ADFPhaseListener
</phase-listener>
</lifecycle>
フェーズ・リスナーは、ADFページのライフサイクルの実行に使用されます。ADFライフサイクルはADFフェーズ・リスナーを使用してフェーズ・イベントをリスニングし、これによりモデルの準備、モデル更新の検証およびレンダリング対象となるページの準備に関係する適切なADFフェーズを、適切なJSFフェーズの前後に実行できます。
ADFデータ・コントロールをJSFページで初めて使用するときに、JSF構成ファイルにOracle ADFコンポーネント用のデフォルト・レンダー・キットが追加されます。次に例を示します。
<application>
<default-render-kit-id>oracle.adf.core</default-render-kit-id>
</application>
ADF Facesコンポーネントのレンダリングの詳細は、「ADF Facesの利点について」を参照してください。
Oracle ADFページのライフサイクルについて
Oracle ADFライフサイクルのフェーズについて
JSFページのライフサイクルについて
Oracle ADFコントローラの使用
アプリケーションのOracle ADFライフサイクルのカスタマイズ
ページのOracle ADFライフサイクルのカスタマイズ
ADFライフサイクルのフェーズの詳細は、ライフサイクルとフェーズに関する次のJavaDocを参照してください。
oracle.adf.controller.v2.lifecycle.Lifecycle
oracle.adf.controller.v2.lifecycle.Phases
ADFフェーズ・リスナーの詳細は、フェーズ・リスナー・インタフェースに関する次のJavaDocを参照してください。
oracle.adf.controller.faces.lifecycle.ADFPhaseListener
Copyright © 1997, 2007, Oracle. All rights reserved.