Oracle ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。このライフサイクルを使用して、ADFデータ・コントロールを使用するアプリケーションでADFモデルをサポートできます。
独自のライフサイクル・ファクトリを作成して、アプリケーション全体のライフサイクルをカスタマイズできます。詳細は、「アプリケーションのOracle ADFライフサイクルのカスタマイズ」を参照してください。
アプリケーションのページのライフサイクルを個別にカスタマイズすることもできます。このトピックでは、Strutsアプリケーションのページに対する、このレベルのカスタマイズについて説明します。
Oracle ADFを使用して作成するデータ・アクションとデータ・ページは、ADFライフサイクルの実行をページ・コントローラに委譲します。データ・アクション・クラスにより、環境マップが初期化されます。次に、実行するフェーズと実行順序を定義するLifecycleProcessor
に対してexecute()
をコールすることで、ライフサイクルが実行されます。
以前のバージョンのJDeveloperから移行されたアクションの場合、ライフサイクルの実行にページ・コントローラとライフサイクル・プロセッサは使用されず、以前のバージョンと同様に実行されます。これらのアプリケーションでは、保持しようとするDataActionサブクラスにカスタム・コードを追加していた場合、続行する前に10.1.3のライフサイクルを使用するように変換する必要があります。「10.1.2からADFページのライフサイクルへの変換」を参照してください。
ページ・コントローラ・クラスは、次のとおりです。
oracle.adf.controller.v2.lifecycle.PageController
このクラスはページ・ライフサイクルを拡張するため、ライフサイクルを実行するためのメソッドをすべて提供します。したがって、ライフサイクル・メソッドのいずれかをオーバーライドする必要がある場合は、このクラスを拡張して必要なメソッドをオーバーライドします。
手順については、次の各項を参照してください。
PageControllerを拡張してメソッドをオーバーライドする手順は、次のとおりです。
ページのライフサイクルのカスタマイズ対象となるデータ・アクションまたはデータ・ページを右クリックし、「コードに移動」を選択します。
「ADF PageController」ダイアログを使用して、PageControllerクラスを拡張する新規クラスの「名前」と「パッケージ」を指定します。「拡張対象」フィールドは、デフォルトのoracle.adf.controller.v2.lifecycle.PageController
のままにしておきます。
Javaソース・エディタに表示される新規クラスのメソッドをオーバーライドするには、「ソース」→「メソッドのオーバーライド」を選択します。
「メソッド」リストからオーバーライドするメソッドを選択し、メソッドのJavadocをコピーする場合は「Javadocのコピー」を選択します。
データ・コントロール・パレットからページにドロップした操作を非表示にする手順は、次のとおりです。
データ・コントロール・パレットからページに操作をドロップする場合は、それぞれのイベント・ハンドラ・コードを個別に記述する必要があります。
PageLifecycleContext
クラスをインポートします。このクラスには、ADFページのライフサイクル中に保持される状態情報がすべて含まれています。
import oracle.adf.controller.v2.context.PageLifecycleContext;
データ・コントロール・パレットからページに追加する各操作に対して、イベント・ハンドラ・コードを記述します。
たとえば、データ・コントロール・パレットを使用して、 setCurrentRowWithKey(String)操作をボタンとしてページにドロップする場合は、次のようなイベント・ハンドラを記述します。
public void onSetCurrentRowWithKey(LifecycleContext ctx)
{
super.invokeActionBinding(ctx, "setCurrentRowWithKey");
try
{
ctx.setForwardPath("targetPage.jsp");
ctx.setRedirect(true);
}
catch(Exception e)
{
e.printStackTrace();
}
}
Oracle ADFページのライフサイクルについて
Oracle ADFライフサイクルのフェーズについて
アプリケーションのOracle ADFライフサイクルのカスタマイズ
Oracle ADFでの名前付きイベントの使用
ビジネス・サービス・メソッドの実行
ライフサイクル・クラスのコードおよびJavadocの表示
ADFライフサイクル・クラスの詳細は、次のJavadocを参照してください。
Oracle Application Development FrameworkライフサイクルAPIリファレンス
Copyright © 1997, 2006, Oracle. All rights reserved.