Oracle ADFページのライフサイクルでは、ページのレンダリング前にADFモデルを準備します。このライフサイクルを使用して、ADFデータ・コントロールを使用するアプリケーションでADFモデルをサポートできます。
独自のライフサイクル・ファクトリを作成して、アプリケーション全体のライフサイクルをカスタマイズできます。詳細は、「アプリケーションのOracle ADFライフサイクルのカスタマイズ」を参照してください。
また、ライフサイクルをアプリケーションの個別ページにあわせてカスタマイズしたり、カスタマイズしたライフサイクルをアプリケーションの数ページまたは全ページに再利用することも可能です。このトピックでは、このレベルでのJSFページに関するカスタマイズについて説明します。項目は次のとおりです。
JSFアプリケーションの場合、ページのライフサイクル実装クラスは次のクラス内で拡張されます。
oracle.adf.controller.faces.lifecycle.FacesPageLifecycle
JSFアプリケーションの場合、ADFライフサイクルでは追加フェーズを使用してJSFライフサイクルを拡張します。統合方法の詳細は、「JSFアプリケーションとOracle ADFコントローラについて」を参照してください。
JSFライフサイクルをカスタマイズするために、リクエスト処理ライフサイクルの特定のフェーズについて処理の前後にオブジェクトに通知できます。このメカニズムは、ADFライフサイクルをJSFライフサイクルと統合するためにADF自体で使用されます。このイベント・メカニズムの使用方法の詳細は、「イベントおよびJSFライフサイクルについて」を参照してください。
JSFアプリケーションのページ用にADFページのライフサイクルをカスタマイズするには、PageController
クラスを拡張し、変更するメソッドをオーバーライドしてから、ページに新規のページ・コントローラを使用する必要があります。
JSFページのライフサイクルをカスタマイズするには、次の手順を実行します。
JSFアプリケーションのページのADFページ・コントローラを拡張する手順は、次のとおりです。
oracle.adf.controller.v2.lifecycle.PageController
クラスを拡張するJavaクラスを作成します。「新規のJavaクラスの作成」を参照してください。
Javaソース・エディタに新規クラスを表示し、「ソース」→「メソッドのオーバーライド」を選択します。
「メソッド」リストからオーバーライドするメソッドを選択し、メソッドのJavadocをコピーする場合は「Javadocのコピー」を選択します。
JSFアプリケーション・ページのコンポーネントに新規ページ・コントローラ・クラスを使用する手順は、次のとおりです。
アプリケーションでページを作成します。「JSFページの作成」を参照してください。
そのページで使用するデータ・コントロールを追加します。「データ・コントロール・パレットを使用したUIコンポーネントの挿入」を参照してください。
アプリケーション・ナビゲータで、「アプリケーション・ソース」ノードと「pagedefs」パッケージを順番に拡張します。アプリケーション・テンプレート「Webアプリケーション [default]」または「Webアプリケーション [JSF、JSP、EJB]」を使用してアプリケーションを作成した場合、これは「ViewController」プロジェクト内の「view.pagedef」パッケージです。
ページのページ定義(ファイル名pagename
PageDef.xml
)を選択します。このファイルは、ページに最初のデータ・コントロールを追加したときに作成されています。
構造ウィンドウが表示されない場合は、「表示」メニューを使用して表示します。
構造ウィンドウで、ページ定義からpagename
PageDef
という最上位ノードを選択します。
プロパティ・インスペクタが表示されない場合は、「表示」メニューを使用して表示します。
ページ・コントローラ・クラスの概念はJSFマネージド(バッキング)Beanの概念に似ています。ADFでは、ページ・コントローラをマネージドBeanとして使用登録できます。この方法を使用すると、汎用ページ・コントローラ・コードを記述できます。この種のコードは複数ページ間で再利用できますが、JSF構成ファイルに指定されたマネージドBeanプロパティを介して特定のページごとに構成可能です。
ページ・コントローラとしてマネージドBeanを使用するために、ADFはJSF EL式言語表記法を使用してページ定義でControllerClassプロパティを指定する操作をサポートしています。これには次の利点があります。
バッキングBeanをページ・コントローラ・クラスとして使用できるため、特定のページに関連する全コードを1つのバッキングBeanにグループ化できます。
マネージドBeanのプロパティを設定して、ページ・コントローラを格納する必要のあるスコープ(リクエスト、セッションまたはアプリケーション・スコープ)を設定できます。
このスキームを使用すると、汎用ページ・コントローラ・クラスは全ページで再利用されますが、JSF構成ファイル内で指定したマネージドBeanプロパティを介して特にページごとに構成されます。
1つのページ・コントローラ・クラスを複数のJSFページに使用する手順は、次のとおりです。
手順1で作成したページ・コントローラ・クラスを「クラス」として指定し、このBeanに必要なスコープ(通常は「application」)を「スコープ」として指定します。
JSF構成ファイルのソースでは、マネージドBeanは次のようになります。
<managed-bean>
<managed-bean-name>myManagedBean</managed-bean-name>
<managed-bean-class>view.myPageController</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<!--oracle-jdev-comment:managed-bean-jsp-link:1use_managed.jsp-->
</managed-bean>
アプリケーション内で同じページ・コントローラ・クラスを再利用するページごとに、ControllerClassプロパティを新規のページ・コントローラ・クラスに設定します。設定手順は次のとおりです。
アプリケーション・ナビゲータで、ページのページ定義ファイル(名前の書式はpage
PageDef.xml
)を選択します。
構造ウィンドウで、ページのトップレベル・ノード(名前の書式はage
PageDef
)を右クリックして「プロパティ」を選択します。
「アドバンスト・プロパティ」タブをクリックし、ControllerClassプロパティについて省略記号(...)をクリックし、新規のページ・コントローラ・クラスを検索します。
「ソース」ビューにページ定義を表示し、参照を変更して、新規コントローラ・クラス用に登録したマネージドBeanに#{myManagedBean}
などのEL参照を与えます。
エントリは次の書式のページ定義ファイルに追加されます。
ControllerClass="#{mymanagedbean}"
Oracle ADFページのライフサイクルについて
Oracle ADFライフサイクルのフェーズについて
アプリケーションのOracle ADFライフサイクルのカスタマイズ
Oracle ADFでの名前付きイベントの使用
ビジネス・サービス・メソッドの実行
ライフサイクル・クラスのコードおよびJavadocの表示
ADFライフサイクル・クラスの詳細は、次のJavadocを参照してください。
Oracle Application Development FrameworkライフサイクルAPIリファレンス
Copyright © 1997, 2007, Oracle. All rights reserved.