Oracle ADFでは、Webアプリケーションでイベントを使用するためのコマンドおよびイベント・ハンドラを簡単な方法で作成できます。このトピックでは、次の項目について説明します。
Webページに追加する、名前付きイベントをコールするためのコードは、モデル・レイヤー・アクションと、モデル・レイヤーに移動しない名前付きイベントのいずれでも同じです。ただし、Oracle ADFにはモデル・レイヤー操作をWebページに追加するショートカットが用意されています。この項では、使用するショートカットとコードの両方について説明します。
アクション・バインディング・モデルの操作を実行するには、次のようにします。
Webページからカスタム・イベントをコールするには、次のようにします。
ボタンの場合は、次のように入力します。
<input type="submit" name="event_eventName" value="buttonName"/>
eventName
はイベントの名前、buttonName
はボタンのテキストです。
リンクの場合は、次のように入力します。
<a href="pageName.do?event=EventName">Link Text</a>
eventName
はイベントの名前、Link Text
はリンクのテキストです。
Webページでイベントをコールするコマンドを記述した後、既存の操作のカスタマイズや新規の名前付きイベントの作成もできます。
ビジネス・サービスを作成してアプリケーションに登録すると、データ・コントロール・パレットに使用可能な操作(アクション・バインディング)が表示されます。これらの操作を使用するWebページに関連付けられたデータ・アクションまたはデータ・フォワード・アクション内でイベント・ハンドラを作成すると、その操作による動作をオーバーライドできます。また、アクション・バインディングを使用しないイベントも新規に作成できます。
アクション・バインディング内の既存の操作をオーバーライドするには、次のようにします。
ページ・フロー・ダイアグラムで、メソッドをコールするページに関連付けられているデータ・アクションまたはデータ・ページを右クリックします。「コードに移動」を選択すると、「Strutsデータ・アクションの作成」ダイアログが開かれます。
「Strutsデータ・アクションの作成」ダイアログの「拡張対象」フィールドに、スーパークラスoracle.adf.controller.struts.actions.DataAction
またはoracle.adf.controller.struts.actions.DataForwardAction
が指定されています。
デフォルト値のままで「OK」をクリックします。
コード・エディタで「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)
コード・テンプレート内のコメントは、メソッド・コールの前後に必要な処理を行うコードをどこに入力するかを示しています。コード・テンプレートの詳細は、「コード・テンプレートの使用方法」を参照してください。
新規イベントに名前付きイベント・ハンドラを作成するには、次のようにします。
コード・エディタで、イベント・ハンドラのコードを追加します。イベント・ハンドラのシグネチャは次のようになります。
public void onEventName(DataActionContext actionContext)
{
//Your implementation here
}
名前付きのイベントを使用して、Webページ内のデータ・アクションまたはデータ・フォワード・アクションにフォワードを定義できます。それには、アクションのフォワードのname
属性の値を、Webページ内の関連するイベントの名前と同じにします。データ・アクションおよびデータ・ページで、アクション・サブクラス内でもアクション・バインディング内でも定義されていないイベントが発生した場合、そのイベントはフォワードの名前であると想定されます。
イベントをアクション・フォワードに関連付けるには、次のようにします。
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>
Webページ内のイベント名と同じ適切なパスを持つアクション・フォワードのname
属性を設定します。
前述の例では、参照ページに移動するフォワードは次のように定義されます。
<forward name="commit" path="/browsePage.do">
ヘルプ・ページに移動するフォワードは次のように定義されます。
<forward name="help" path="/help.jsp">
次の図は、ページ・フロー・ダイアグラムでページ・フローがどのように表示されるかを示しています。
Oracle ADFでは、関連するデータ・アクションまたはデータ・フォワード・アクションのサブクラスの作成が不要になるように、この設定を処理しています。
Copyright © 1997, 2004, Oracle. All rights reserved.