複数のフォワード結果に対するADFページ・コントローラのカスタマイズ

Strutsページ・フロー・ダイアグラムで、データ・アクションまたはデータ・ページに複数のフォワード遷移を作成すると、Struts構成ファイル内のアクション・マッピングが更新され、アクション完了後のフォワード先となるリソースが定義されます。デフォルトで、ページ・コントローラであるクラスoracle.adf.controller.v2.lifecycle.PageControllerでは、successのフォワード結果のみが定義されます。したがって、ADFページ・コントローラを拡張するクラス・ファイル内のfindForward()メソッドをオーバーライドして、他の各フォワードが使用される場合を定義することが必要な場合もあります。

イベントを使用して、フォワード先のリソースを定義できる場合もあります。詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。

ADFページ・コントローラのサブクラスを作成するには、次のようにします。

  1. ページ・フロー・ダイアグラムで、データ・アクションまたはデータ・ページを右クリックし、コードに移動を選択します。

  2. ダイアログで、新規クラスの「名前」(慣例ではPageControllerで終わる名前)を入力し、「パッケージ」を入力します。またはデフォルトの値を受け入れます。

    次のページ・コントローラ・クラスを示す「拡張対象」フィールドはそのままにします。
    oracle.adf.controller.v2.lifecycle.PageController

    「OK」をクリックします。

  3. 設計時にクラス・ファイルがプロジェクトに追加され、Javaソース・エディタでそのファイルが開きます。

  4. ツールバーで、「ソース」矢印アイコン 「メソッドのオーバーライド」の順に選択します。

  5. 「メソッドのオーバーライド」ダイアログで、次のfindForward()メソッドを選択します。

    findForward(oracle.adf.controller.v2.context.PageLifecycleContext) : void        
  6. 次のようなコードが新規クラスに組み込まれ、findForward()メソッド用の独自のコードを実装できる状態になります。

    package view;
    
    import oracle.adf.controller.v2.context.PageLifecycleContext;
    import oracle.adf.controller.v2.lifecycle.PageController;
    
    public class DataActionPageController extends PageController {
      public void findForward(PageLifecycleContext context) throws Exception {
        super.findForward(context);
      }
    }        

    次のWebページのパスは、ページに対するPageLifecycleContextforwardPathプロパティを使用して識別されます。

  7. Javaソース・エディタでfindForward()メソッドを実装して、クラスを保存します。


ページ・フロー・ダイアグラムからのOracle ADFアプリケーションの実行
ページ・フロー・ダイアグラムからのWebページの作成
ページ・フロー・ダイアグラムへの既存Webページの関連付け
アプリケーションに対するOracle ADFライフサイクルのカスタマイズ
ページに対するOracle ADFライフサイクルのカスタマイズ