JSP参照フォームおよび編集フォームの作成

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

このトピックでは、次の項目について説明します。

概要

アプリケーションが完成したら、ページ・フロー・ダイアグラムから実行します。次のような参照用のWebページが最初に表示されます。

Browse web page

編集用のWebページは次のようになります。

Edit web page

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

Scenario steps in Model, View, and Controller layers

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

モデル・レイヤー

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

ビュー・レイヤー

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

注意: ビュー・レイヤーにJSPページを作成する前にページ・フロー・ダイアグラムにコントローラ・レイヤー全体を作成することもできますが、多くの場合、データ・ページと関連するWebページを作成してから残りのページ・フローを作成します。後続の項の順序はこの開発方法に対応しています。

参照ページ機能の作成

この項では、このページ・フローの参照ページ機能の表示に使用されるデータ・ページとWebページの作成方法を説明します。

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

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

  2. ページ・フロー・ダイアグラムにデータ・ページを追加します。データ・ページを「/browsePage」という名前に変更します。

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

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

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

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

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

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

    Described in text

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

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

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

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

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

  5. データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Navigation Button」を選択し、「DepartmentsView1」を既存のフォームの下部にドラッグします。

    Navigation buttons in form

    これらのボタンにより、ユーザーはDepartmentsフォームの行の間を移動できるようになります。

  6. データ・コントロール・パレットで、「DepartmentsView1」ノードの下にある「EmployeesView3」を選択します。「ドラッグ・アンド・ドロップの形式」リストから読取り専用の表を選択し、最初のフォームの下で個々のフォームになるように「EmployeesView3」をドラッグします。

    EmployeesView3は、部門ごとに従業員のリストを表示するビュー・オブジェクトです。

  7. 列を追加して、選択された行のキーを編集ページに渡すリンクをその中に含めます。表の最初にある列の内側をクリックし、右クリックして、「表」->「列の挿入」のメニュー項目を選択します。

  8. 次に、ユーザーを編集ページに移動するリンクを作成します。

    「EmployeesView3」ノードの下にある「setCurrentRowWithKey」操作を選択し、ドロップダウン・リストから「Find Row Link」を選択します。パレットの選択結果は、次のようになります。

    Data Control Palette with operations

    2番目の行にある最初の列にリンクを追加します(再度、データ・コントロール・パレットの上端から、forEach文の下のフィールドに選択項目をドラッグします)。

    次のコード・セグメントでは、JSPページのコード・ビューで操作がどのように表示されるかを示します。


    <a href="browsePage.do?event=setCurrentRowWithKey&Arg0=<c:out value='${Row.rowKeyStr}' />">Edit</a>

    注意: この例のコードによって示されているように、アクションの場所に通常の<a href>タグを追加する場合、先頭のスラッシュ(/)を記述しないでください。

    モデル・レイヤーで使用可能な操作の詳細は、「Oracle ADFでサポートされているデータ・コレクション操作について」を参照してください。

  9. リンクを右クリックし、「タグの編集」を選択してリンクを編集します。リンクのテキストを「Select」から「Edit」に変更します。

    JSPページのデザイン・ビューは、次のようになります(全体表示ではありません)。

    Described in text

  10. データ・コントロール・パレットで、トップ・レベルの「Operations」ノードにある「Commit」アイコンを選択します。「ドラッグ・アンド・ドロップの形式」リストから「Button with Form」を選択し、「Commit」データ・コントロールを、2番目の表の下にあるボタンにドラッグします。

    これで、アプリケーションの参照ページが完成しました。

編集ページ機能の作成

この項では、このページ・フローの編集機能の表示に使用されるデータ・ページとWebページの作成方法を説明します。

編集フォーム・ページを作成するには、次のようにします。

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

    このデータ・ページを追加すると、struts-config.xml fileファイルの<action-mappings>セクションに、前述の場合と同様のエントリが作成されます。

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

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

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

    ユーザーが行データの更新と送信を行うために必要なデータ・バインディングとリンク情報のすべてが、入力フォームに含まれています。これで、従業員の編集フォーム・ページが完成しました。

アクションに対するフォワードの作成

この項では、ページ・フローで必要なフォワード遷移をページ・フロー・ダイアグラムを使用して作成する方法について説明します。

フォワード遷移を作成するには、次のようにします。

  1. データ・コントロール・パレットでフォワード・アイコンをクリックし、/browsePageから/editEmpRowPageへのフォワード遷移を作成します。この遷移にはsetCurrentRowWithKeyという名前を付けます。

    ページ・フローは、次のようになります。

    Described in text

    このフォワードの名前は、ユーザーが2番目の表の「Edit」リンクをクリックしたときにアプリケーションが実行する操作であるsetCurrentRowWithKey()に対応します。このリンクは、この使用例の参照ページを作成した際に作成されています。フォワードを追加すると、最初のデータ・ページのアクション・マッピングに<forward>要素が次のように追加されます。

    <forward name="setCurrentRowWithKey" path="/editEmpRowPage.do"/>

    操作とアクション・フォワードの関連付けの詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。

  2. 「/editEmpRowPage」から「/browsePage」フォワードを描きます。その遷移に、「Submit」という名前を付けます。

    このフォワードを追加すると、2番目のデータ・ページのアクション・マッピングに<forward>要素が追加されます。

アプリケーションの実行

Strutsページ・フロー・ダイアグラムで作成したbrowsePageデータ・ページから、データ・バインドされた参照ページおよび編集ページを実行します。

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

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

    Described in text

  2. 「/browsePage」アイコンを右クリックして「実行」を選択します。

    編集ページがブラウザで表示されたら、いずれかの行の「Edit」リンクをクリックします。フィールドを編集し、「Submit」をクリックして参照ページに戻ることができます。

    注意: データの更新に失敗すると、アプリケーションにより入力ページが再表示されます。

  3. レコードを編集してから参照ページに戻ると、「Commit」ボタンがアクティブになります。ボタンをクリックして更新トランザクションをコミットできます。

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

 

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