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

Oracle ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。このライフサイクルを使用して、ADFデータ・コントロールを使用するJSF、Strutsまたはモデル1の各アプリケーションでADFモデルをサポートできます。

アプリケーションの各ページのライフサイクルを個別にカスタマイズできます。詳細は、「ページのOracle ADFライフサイクルのカスタマイズ」を参照してください。

また、アプリケーションのすべてのページに異なるページ・ライフサイクル・インスタンスを戻す独自のライフサイクル・ファクトリを作成して、アプリケーション全体のライフサイクルをカスタマイズすることもできます。

このトピックでは、このレベルでのカスタマイズについて説明します。項目は次のとおりです。

JSFアプリケーションのデフォルトのADFライフサイクルの置換

JSFアプリケーションのデフォルトのADFライフサイクルを置換するには、ADFPhaseListenerクラスを拡張する新規のフェーズ・リスナーを作成します。この新規フェーズ・リスナーは、ページのライフサイクルのファクトリとして機能します。

JSFアプリケーションのデフォルトのADFライフサイクルを置換する手順は、次のとおりです。

  1. アプリケーション・レベルで使用する新規のカスタム・ページ・ライフサイクルを作成します。

    そのためには、oracle.adf.controller.faces.lifecycle.FacesPageLifecycleを拡張するクラスを作成し、必要に応じてカスタマイズを追加します。この手順に示すサンプル・コードの目的上、このクラスをMyFacesPageLifecycleと呼びます。

  2. ライフサイクル・ファクトリを作成します。

    そのためには、oracle.adf.controller.faces.lifecycle.ADFPhaseListenerを拡張するクラスを作成します。この例では、MyPhaseListenerとします。

  3. ADFPhaseListenerを拡張するクラス(MyPhaseListenerなど)で、メソッドcreatePageLifecycleをオーバーライドし、必要なタイプのページ・ライフサイクルの新規インスタンスを作成します。次に例を示します。

    protected PageLifecycle createPageLifecycle()
    {
      return new MyFacesPageLifecycle();
    }         

    このメソッドは、アプリケーションごとに1回のみコールされます。

  4. JSF構成ファイル(faces-config.xml)内で、<phase-listener>エントリを置換します。

    そのためには、JSF構成エディタの「概要」タブを選択してfaces-config.xmlファイルを開きます。JSF構成エディタの左に表示されるリストで、「ライフ・サイクル」を選択して「編集」をクリックします。oracle.adf.controller.faces.lifecycle.ADFPhaseListenerを、新規ライフサイクル・ファクトリのパスと名前(myPackage.MyPhaseListenerなど)で置き換えます。

    このJSF構成ファイルをXMLエディタで表示すると、コードは次のようになっています。

    <lifecycle>
      <phase-listener>myPackage.MyPhaseListener</phase-listener>
    </lifecycle>        

StrutsアプリケーションのデフォルトのADFライフサイクルの置換

StrutsアプリケーションのデフォルトのADFライフサイクルを置換するには、PageLifecycleFactoryを拡張する新規クラスを作成し、Struts構成ファイル内で新規クラス用のStrutsプラグインを構成します。

StrutsアプリケーションのデフォルトのADFライフサイクルを置換する手順は、次のとおりです。

  1. アプリケーション・レベルで使用する新規のページ・ライフサイクル・ファクトリを作成します。

    そのためには、PageLifecycleFactoryを拡張するクラスを作成します。これにより、すべてのWebページ用の代替PageLifecycleが提供されます。

  2. 新規ファクトリ用のStrutsプラグインを構成します。PageLifecycleFactoryPluginを使用します。

    そのためには、アプリケーション・ナビゲータでStruts構成ファイルを右クリックして「プロパティ」を選択します。Struts構成エディタの左に表示されるリストから「Plugin」を選択します。プラグインを次のように追加します。

    クラス名: oracle.adf.controller.struts.actions.PageLifecycleFactoryPlugin
    プロパティ: lifecycleFactory
    : 新規ファクトリのパッケージと名前(myPackage.myStrutsLifecycleFactoryなど)

    Struts構成エディタの使用方法のヘルプを表示するには、いずれかの画面またはダイアログで「ヘルプ」をクリックします。

    このStruts構成ファイルをXMLエディタで表示すると、プラグインのコードは次のようになっています。

    <plug-in className="oracle.adf.controller.struts.actions.PageLifecycleFactoryPlugin">
      <set-property 
        property="lifecycleFactory" 
        value="myPackage.myStrutsLifecycleFactory"/>
    </plug-in>         

モデル1アプリケーションのデフォルトのADFライフサイクルの置換

StrutsアプリケーションのデフォルトのADFライフサイクルを置換するには、PageLifecycleFactoryを拡張する新規クラスを作成し、そのクラスをアプリケーションのweb.xmlファイル内で構成します。

モデル1アプリケーションのデフォルトのADFライフサイクルを置換する手順は、次のとおりです。

  1. アプリケーション・レベルで使用する新規のページ・ライフサイクル・ファクトリを作成します。

    そのためには、PageLifecycleFactoryを拡張するクラスを作成します。これにより、すべてのWebページ用の代替PageLifecycleが提供されます。

  2. アプリケーションのweb.xmlファイル内で、置換ライフサイクル・ファクトリをADFPageLifecycleFactoryとして構成します。

    そのためには、アプリケーション・ナビゲータでweb.xmlファイルを右クリックして「プロパティ」を選択します。「Webアプリケーション・デプロイメント・ディスクリプタ」ダイアログの左に表示されるリストから「コンテキストの初期化」を選択して「追加」をクリックします。

    「名前」ADFPageLifecycleFactoryと入力します。「値」に、新規のライフサイクル・ファクトリ・クラスのパスと名前(mypackage.myLifecycleFactoryなど)を入力します。

    このweb.xmlファイルをXMLエディタで表示すると、新規コンテキスト・パラメータのコードは次のようになっています。

    <web-app>
      ...
      <context-param>
        <param-name>ADFPageLifecycleFactory</param-name>
        <param-value>mypackage.myLifecycleFactory</param-value>
      </context-param>
      ...
    </web-app>        

クラスのコードまたはJavaDocの表示

プロジェクトのテクノロジ・スコープに含まれる全クラスのコードまたはJavadocを表示できます。特に、ADFライフサイクルを実装するクラス、独自のライフサイクル・ファクトリの拡張に必要なクラスについて、コードとJavadocを参照できます。

テクノロジ・スコープ内にあるクラスのコードまたはJavadocを表示する手順は、次のとおりです。

  1. 「ナビゲート」「Javaクラスに移動」を選択します。

  2. ダイアログの「名前」フィールドにクラス名を入力するか、「参照」をクリックしてクラスを参照します。

  3. 「ソース」または「Javadoc」を選択して「OK」をクリックします。


Oracle ADFページのライフサイクルについて
Oracle ADFライフサイクルのフェーズについて
ページのOracle ADFライフサイクルのカスタマイズ
Oracle ADFでの名前付きイベントの使用
ビジネス・サービス・メソッドの実行

ADFライフサイクル・クラスの詳細は、次のJavadocを参照してください。

Oracle Application Development FrameworkライフサイクルAPIリファレンス