行の現在位置情報をADFバインディング・コンテキストに渡すURLの挿入

ビジネス・サービスが、データ・コレクションでの行の現在位置をサポートしている場合、URLリンクで、公開されている「現在の行の設定」操作をそのコレクションに対して使用できます。たとえば、あるWebページでは表示される表を含むフォームを作成し、他のWebページでは入力フォームを作成しようと考える場合があります。表示される表でURLリンクを使用して、現在の行情報をADFデータ・アクションに渡し、そのADFデータ・アクションにより、指定された行に関する編集フォームを表示します。

注意: これと同じ手法を使用して、コレクションにある特定のデータ・オブジェクトを削除できます。実際、現在の行に対して実行される操作は、リンクのターゲットであるADFデータ・アクションによって決定されます。

現在の行のリンクを表示する表を作成するには、次のようにします。

  1. 設計対象のADF対応Webページ用に、データ・コントロール・パレットを開きます

  2. データ・コントロール・パレットで、目的のデータ・コレクションを選択します。

  3. 表示用の表を作成するには、データ・コントロール・パレットで、表で表示する属性を持つコレクション・ノードを選択します。ドロップダウン・リストでデフォルトで選択されている読取り専用の表を変更しないでください。

  4. 既存のHTMLフォームに表を挿入します。ビジュアル・エディタのデザイン・ビューでは、同じ破線のボックスの中にそれらの表とボタンが表示されます。このことは、それらが同じHTMLフォーム要素に所属していることを示します。Webページのデザイン・ビューは、次のようになります(全体表示ではありません)。

    Display table.

  5. これで、ビジュアル・エディタで表を編集し、列を追加して、行のキーを編集ページに渡すリンクをその中に含めることができます。表の内側をクリックし、右クリックして、「表」メニュー項目 から「列の挿入」を選択します。

  6. リンクを指定するために、選択済のコレクションを開き、次のように選択します。

    次に、ドロップダウン・リストから「Find Row Link」を選択します。

  7. 2番目の行にある最初の列にリンクを追加します(再度、データ・コントロール・パレットの上端から、forEach文の下のフィールドに選択項目をドラッグします)。Webページのデザイン・ビューは、次のようになります(全体表示ではありません)。

    Display table with extra column.

  8. リンクを編集するために、リンクを右クリックし、「タグの編集」を選択します。

  9. 「OK」をクリックして、表の中のリンクを更新します。Webページのデザイン・ビューは、次のようになります。

    Edit link in extra table column.

Strutsページ・フローでの現在の行イベントの処理

Strutsページ・フローを使用し、 setCurrentRowWithKey()またはsetCurrentRowWithKeyValue()のどちらかを使用して行キーを渡す場合、イベントに一致するよう、ページ・フォワードの名前を設定する必要があります。その結果、たとえば、setCurrentRowWithKeyまたはsetCurrentRowWithKeyValue(または、リンク定義ですでに定義した他のイベント名)に設定します。ページ・フォワードにより、現在の行情報を表示する目的で使用されるデータ・アクションが識別されます。たとえば、あるアクションを使用して編集用Webページを表示し、ユーザーが行データを編集できるようにしたいと考えることがあります。

個別の編集ページで現在の行イベントを処理するには、次のようにします。

  1. ページ・フロー・ダイアグラムを開き、新しいデータ・ページ( /editPage)を挿入して、それら2つの間でフォワード遷移を描きます

    Page flow displays data pages.

  2. 作成したWebページ用のリンクに対して指定したイベントの名前に合せて、ページのフォワード遷移に名前を付けます。

    Page flow displays setCurrentRowWithKey.

    または

    Page flow displays setCurrentRowWithKeyValue.

  3. データ・コントロール・パレットを使用し、同じデータ・コレクションに対する「setCurrentRowWithKey(string)」または「setCurrentRowWithKeyValue(string)」操作を新しいデータ・ページ(editPage)にドロップします。

  4. 新しいデータ・ページ(editPage)用のWebページを作成し、データ・コントロール・パレットから同じデータ・コレクションを「Input Form」としてドロップします。

  5. ページ・フローに戻り、入力フォームにある「Submit」ボタンのイベント名に合せて、フォワード遷移の名前を「Submit」に変更します。

    Page flow displays Submit transition.

モデル1 Webページのイベント処理について

モデル1 Webページで、Strutsなしの作業をする場合、oracle.adf.controller.lifecycle.PageLifeCycleをサブクラス化する必要があります。その中で、次のようなイベントを処理します。


public void onSetCurrentRowWithKey(LifecycleContext ctx)
     {
       super.invokeActionBinding(ctx, "setCurrentRowWithKey");
       try
       {
             ctx.setForwardPath("targetPage.jsp");
             ctx.setRedirect(true);
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }
     }    

Bean属性を主キーとして指定
Oracle ADFアプリケーション用のStrutsページ・フローの作成
Oracle ADFを使用したモデル1形式のWebページの作成

 

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