マスター表を更新する単一JSPページのマスター/ディテール・フォームの作成

このトピックでは、次の操作が可能なデータ・バインドされたStrutsアプリケーションのモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーの作成に必要な手順を説明します。

概要

ページ・フローが完成したら、ページ・フロー・ダイアグラムから実行します。次のようなマスター/ディテールWebページが表示されます。

Master detail form

次の図に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある手順を簡単に示します。

Scenario steps in Model, View, and Controller layers

次に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある主要な手順を詳しく説明します。

モデル・レイヤー

コントローラ・レイヤー(設計時)

ビュー・レイヤー

コントローラ・レイヤー(実行時)

マスター表の作成

この項では、ページ・フロー・ダイアグラムとビジュアル・エディタを使用して、マスター表とそれに関連するナビゲーション、検索および更新機能を作成する方法を説明します。

参照データ・ページと関連するJSPページを作成するには、次のようにします。

  1. Strutsページ・フロー・ダイアグラムを開きます

  2. コンポーネント・パレットで、データ・ページ要素をクリックしてページ・フロー・ダイアグラムにドラッグします。データ・ページに/browseDeptEmpPageという名前を付けます。

    この手順を実行すると、次のエントリがstruts-config.xmlファイルに作成されます。

      <form-beans>
        <form-bean name="DataForm" type="oracle.adf.controller.struts.forms.BindingContainerActionForm"/>
      </form-beans>
      <action-mappings>
        <action path="/browseDeptEmpPage"
          className="oracle.adf.controller.struts.actions.DataActionMapping"
          type="oracle.adf.controller.struts.actions.DataForwardAction" name="DataForm"
          parameter="unknown">
       </action>        

    データ・ページを追加すると、アクションのclassName属性とtype属性にOracle ADFサブクラスが使用されます。さらに、DataFormという名前のフォームBeanも作成されます。データ・フォームBeanによって、アプリケーションWebページ内のフォームで使用可能なバインディング・コンテナの属性が動的に作成されます。Oracle ADFアクション・サブクラスを使用したアクション・マッピングの詳細は、「データ・バインドされたStrutsアプリケーションでのページ・フローについて」を参照してください。

  3. 「/browseDeptEmpPage」アイコンをダブルクリックし、「ページの選択または作成」ダイアログ・ボックスで「OK」をクリックして、browseDeptEmpPage.jspというJSPページを作成します。このとき、「このページをすぐに編集」チェック・ボックスを選択したままにします。

    browseDeptEmpPage.jspファイルが作成され、ページがJSPビジュアル・エディタに表示されます。

  4. データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Input Form」を選択し、「DepartmentsView1」を空のJSPページにドロップします。

    Described in text

    データ・コントロール・パレットには、そのページで使用可能なビジネス・サービスが表示されます。この手順では、DepartmentsView1というビュー・オブジェクトを使用してHRデータベースのDepartments表のデータを表示する読取り専用フォームを追加します。ユーザーはこの表を移動して、後のステップで作成するディテール表に部門ごとの従業員を表示します。

    データ・バインドされた最初のフォームをWebページに追加すると、DataBindings.cpxbrowseDeptEmpPageUI.xmlという2つのOracle ADFプロジェクト・ファイルがビューに作成されます。 DataBindings.cpxは、アプリケーション全体のバインディング・コンテナを定義します。browseDeptEmpPageUI.xmlは、個々のWebページが使用するデータ・コントロールを定義するモデル参照です。

    この時点で、struts-config.xmlファイルが更新されます。次のように<set-property>要素がアクション・マッピングに追加され、関連付けられている<action>要素にモデル参照が定義されます。

    <set-property property="modelReference" value="browseDeptEmpPageUIModel"/>

    Oracle ADFプロジェクト・ファイルの詳細は、「ADF固有のプロジェクト・ファイルについて」を参照してください。データ・コントロール・パレットの詳細は、「データ・コントロール・パレットを使用したUIコンポーネントの挿入」を参照してください。

  5. データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Navigation Button」を選択し、「DepartmentsView1」を既存のフォームにドラッグします。フォームの内部にそのボタンが配置されたことを確認します。

  6. ナビゲーション・ボタン表に6つの列を追加します。

    ナビゲーション・ボタン表の「Last」ボタンのセルにカーソルを合せ、メニューから「設計」->「表」->「行または列の挿入」を選択します。「行または列の挿入」ダイアログで、次のものを選択します。

  7. データ・コントロール・パレットで、「DepartmentsView1」の下にある「Operations」ノードを開きます。前のステップで作成した4つの空の列に、次の各操作をドラッグします。

  8. これらはDepartmentsView1固有の操作であり、このビュー・オブジェクト内のレコードのみを対象にします。

  9. データ・コントロール・パレットで、トップ・レベルの「Operations」ノードを開きます。ナビゲーション表にある残り2つの空の列に、次の各操作をドラッグします。

    これらはグローバル操作であり、ページで加えられたすべての変更に対して適用されます。この時点で、ページのデザイン・ビューは、次のようになります。

    Master table with buttons

ディテール表の作成

このセクションでは、ビジュアル・エディタを使用して、ディテール表とそれに関連するナビゲーション機能を作成する方法を説明します。

  1. データ・コントロール・パレットで「EmployeesView3」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Read-Only Table」を選択し、マスター表の下にあるJSPページ(ビューの一部が表示されています)に「EmployeesView3」をドラッグします。

    Design view of detail table

  2. データ・コントロール・パレットで、「EmployeesView3」の下にある「Operations」ノードを開きます。「Next Set」を選択し、「ドラッグ・アンド・ドロップの形式」リストから「Button with Form」を選択します。「Next Set」を、ディテール表の下にあるJSPページにドラッグします。

    Next set button inside form box

    フォームを含めるために、「Button with Form」を選択する必要があります。これは、どのStrutsアクションがボタンの動作を処理するかを指示します。次のコード・セグメントでは、「ソース」タブで、これがどのように表示されるかを示します。

    <form method="POST" action="browseDeptEmpPage.do">
     <input type="hidden" name="<c:out value='${bindings.statetokenid}'/>" value="<c:out &nbsp;   value='${bindings.statetoken}'/>"/>
     <input type="submit" name="event_NextSet" value="NextSet" <c:out value="${bindings.NextSet.enabledString}" />/>
    </form>

  3. 引き続き EmployeesView3の下にある「Operations」ノードで、「Previous Set」を選択し、「ドラッグ・アンド・ドロップの形式」リストから「Button」を選択します。「Next Set」のあるフォームに、「Previous Set」をドラッグします。
  4. アプリケーション・ナビゲータで、「browseDeptEmpPageUIModel.xml」ノードをクリックします。このノードが表示されていない場合、「ViewController」->「アプリケーション・ソース」->「表示」の各ノードを開きます。

    Described in text

    アプリケーション・ナビゲータでUIモデル・ファイル・ノードを選択した段階で、構造ウィンドウではUIモデル・ビューが表示されます。このビューでは、 browseDeptEmpPage.jspで個別のノードとして使用されているデータ・コントロールとイテレータが表示されます。

  5. 構造ウィンドウで、「EmployeesView3Iterator」を選択します。

    Structure Window with model bindings

  6. プロパティ・インスペクタで、「EmployeesView3Iterator」のレンジ・サイズを10から3に変更します。

    Property Inspector displaying iterator

アプリケーションの実行

作成したデータ・ページをStrutsページ・フロー・ダイアグラムから実行します。

アプリケーションを実行するには、次のようにします。

  1. ビジュアル・エディタの上部の「 struts-config.xml」タブをクリックして、ページ・フロー・ダイアグラムに戻ります。
  2. 「browseDeptEmpPage」アイコンを右クリックして「実行」を選択します。

データ・バインドされたStrutsアプリケーションでのページ・フローについて
Strutsアプリケーションでのページ・フローについて
Oracle ADFのバインディングについて
ADFバインディングのプロパティについて
Oracle ADFデータ・コントロールについて

 

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