Oracle ADFでの名前付きイベントの使用

Oracle ADFでは、Webアプリケーションでイベントを使用するためのコマンドおよびイベント・ハンドラを簡単な方法で作成できます。このトピックでは、次の項目について説明します。

Webページからの名前付きイベントのコール

Webページに追加する、名前付きイベントをコールするためのコードは、モデル・レイヤー・アクションと、モデル・レイヤーに移動しない名前付きイベントのいずれでも同じです。ただし、Oracle ADFにはモデル・レイヤー操作をWebページに追加するショートカットが用意されています。この項では、使用するショートカットとコードの両方について説明します。

アクション・バインディング・モデルの操作を実行するには、次のようにします。

  1. ページ・フロー・ダイアグラムでデータ・ページまたはページ・アイコンをダブルクリックして、編集するWebページを開きます
  2. データ・コントロール・パレットから操作をドラッグして、関連するWebページの設計ビューに挿入します。

Webページからカスタム・イベントをコールするには、次のようにします。

  1. ページ・フロー・ダイアグラムでデータ・ページ、ページ・フォワードまたはページ・アイコンをダブルクリックして、編集するWebページを開きます
  2. ビジュアル・エディタで、「ソース」タブをクリックして、Webページのコード・ビューに切り替えます
  3. イベントをコールするコードを入力します。

Webページでイベントをコールするコマンドを記述した後、既存の操作のカスタマイズや新規の名前付きイベントの作成もできます。

イベントのカスタマイズおよび作成

ビジネス・サービスを作成してアプリケーションに登録すると、データ・コントロール・パレットに使用可能な操作(アクション・バインディング)が表示されます。これらの操作を使用するWebページに関連付けられたデータ・アクションまたはデータ・フォワード・アクション内でイベント・ハンドラを作成すると、その操作による動作をオーバーライドできます。また、アクション・バインディングを使用しないイベントも新規に作成できます。

アクション・バインディング内の既存の操作をオーバーライドするには、次のようにします。

  1. ページ・フロー・ダイアグラムで、メソッドをコールするページに関連付けられているデータ・アクションまたはデータ・ページを右クリックします。「コードに移動」を選択すると、「Strutsデータ・アクションの作成」ダイアログが開かれます。

    「Strutsデータ・アクションの作成」ダイアログの「拡張対象」フィールドに、スーパークラスoracle.adf.controller.struts.actions.DataActionまたはoracle.adf.controller.struts.actions.DataForwardActionが指定されています。

    デフォルト値のままで「OK」をクリックします。

  2. コード・エディタで「daev」とタイプし、[Ctrl]+[Enter]キーを押してイベント・ハンドラのコード・テンプレートを追加します。

    これにより、次のコード・セグメントが追加されます。

    public void on|[Enter event name here ](DataActionContext actionContext)
    {
     // Code before executing the default action
     if (ctx.getEventActionBinding() != null) ctx.getEventActionBinding().doIt();
     // Code after executing the default action
    }

    カーソル(|)の位置にイベント名を追加します。たとえば、Next操作をオーバーライドする場合は、シグネチャは次のようになります。

    public void onNext (DataActionContext actionContext)

    コード・テンプレート内のコメントは、メソッド・コールの前後に必要な処理を行うコードをどこに入力するかを示しています。コード・テンプレートの詳細は、「コード・テンプレートの使用方法」を参照してください。

新規イベントに名前付きイベント・ハンドラを作成するには、次のようにします。

  1. ページ・フロー・ダイアグラムで、名前付きイベント・ハンドラを追加するデータ・アクションまたはデータ・ページを右クリックし、「コードに移動」を選択します。
  2. 「Strutsデータ・アクションの作成」ダイアログの「拡張対象」フィールドに、スーパークラスが指定されています。デフォルト値のままで「OK」をクリックします。
  3. コード・エディタで、イベント・ハンドラのコードを追加します。イベント・ハンドラのシグネチャは次のようになります。

    public void onEventName(DataActionContext actionContext)
    {
     //Your implementation here
    }

アクション・フォワードを定義するイベントの使用

名前付きのイベントを使用して、Webページ内のデータ・アクションまたはデータ・フォワード・アクションにフォワードを定義できます。それには、アクションのフォワードのname属性の値を、Webページ内の関連するイベントの名前と同じにします。データ・アクションおよびデータ・ページで、アクション・サブクラス内でもアクション・バインディング内でも定義されていないイベントが発生した場合、そのイベントはフォワードの名前であると想定されます。

イベントをアクション・フォワードに関連付けるには、次のようにします。

  1. Webページ内のイベントに対するコマンドを入力します。

    たとえば、editPageというWebページに、commitというイベントをコールするボタンと、helpというイベントをコールするリンクがあるとします。1番目のイベントcommitは、データ・コントロール・パレットからドラッグ可能な、データ・コレクションの一般的な操作です。この例では、「コミット」ボタンをクリックすると、編集操作がコミットされ、ユーザーは「参照」ページに戻ります。2番目のイベントhelpでは、現在のページに対する適切なヘルプ・ページをユーザーが表示するカスタム・ナビゲーション操作が用意されます。

    次のコードは、コミット・イベントをコールする(Strutsフォーム内部の)ボタンのHTMLを示しています。

    <form method="POST" action="editPage.do">
    <input type="submit" name="event_Commit" value="Commit"/>
    </form>

    次のコードは、ヘルプ・イベントをコールするリンクのHTMLを示しています。

    <a href="editPage.do?event=Help">Help</a>

  2. Webページ内のイベント名と同じ適切なパスを持つアクション・フォワードのname属性を設定します。

    前述の例では、参照ページに移動するフォワードは次のように定義されます。

    <forward name="commit" path="/browsePage.do">

    ヘルプ・ページに移動するフォワードは次のように定義されます。

    <forward name="help" path="/help.jsp">

    次の図は、ページ・フロー・ダイアグラムでページ・フローがどのように表示されるかを示しています。

    Page flow diagram with commit and help forwards

Oracle ADFでは、関連するデータ・アクションまたはデータ・フォワード・アクションのサブクラスの作成が不要になるように、この設定を処理しています。


Oracle ADFでサポートされているデータ・コレクション操作について
データ・コントロール・パレットを使用したビジネス・サービス・アクションの挿入
データ・アクションを使用したビジネス・サービス・メソッドの実行

 

Copyright © 1997, 2004, Oracle. All rights reserved.