このトピックでは、次の操作が可能なデータ・バインドされたStrutsアプリケーションのモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーの作成に必要な手順を説明します。
このトピックでは、次の項目について説明します。
アプリケーションが完成したら、ページ・フロー・ダイアグラムから実行します。次のような参照用のWebページが最初に表示されます。
編集用のWebページは次のようになります。
次の図に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある手順を簡単に示します。
次に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある主要な手順を詳しく説明します。
モデル・レイヤー
ビジネス・コンポーネントの作成
「ビジネス・サービスおよびモデル・レイヤーの設定」で説明されている手順を実行して、このエンドツーエンド・ソリューションのモデル・レイヤーを作成します。そのトピックでは、Struts、JSPおよびOracle ADF Business Componentsを使用するすべてのエンドツーエンド・ソリューションに共通する情報と手順が説明されています。
コントローラ・レイヤー(設計時)
データ・ページの作成
データ・ページは、Oracle ADFアクション・サブクラス、フォワードおよびWebページの組合せです。ページ・フロー・ダイアグラムは簡略化されており、3つの要素のうち1つのみが表示されます。Oracle ADFは、データ・バインドされたWebページのバインディング・コンテキストを準備するためにデータ・ページを提供します。データ・ページでは、ページのモデル・データ・バインディングを管理します。Webページを作成すると、モデル・レイヤーに作成されたビジネス・コンポーネントに基づくデータ・バインディングが作成されます。
ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してデータ・ページを作成します。ページ・フロー・ダイアグラムはグラフィカルなモデラーです。ページ・フロー・ダイアグラムを使用すると、struts-config.xml
ファイルのアクション・マッピング要素が視覚的に表示され、ページ・フローの構築にかかる時間を短縮できます。コンポーネント・パレットでは、データ・バインドされたStrutsアプリケーションで使用可能なコンポーネントに視覚的にアクセスできます。
データ・ページ間のフォワードの作成
フォワード・コンポーネントを追加すると、Strutsのローカル<forward>
要素が作成されます。データ・ページ間に2つのフォワードを追加すると、Webアプリケーションのstruts-config.xml
ファイルでデータ・ページに対するStrutsの<action>
要素の定義が更新され、ユーザーがアプリケーションのページ間を移動できるようになります。ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してフォワードを作成します。
ビュー・レイヤー
JSPページへのデータ・バインディングの移入
JSPページのコンテンツにより、アプリケーションWebページの外観が決まります。UIコンポーネントとビジネス・コンポーネントの間の相互作用を定義するデータ・バインディングを追加して、このページにデータを表示および更新します。Webページに追加するデータ・バインディングでは、EL(式言語)の構文が使用されます。${bindings.EmployeesView3}
のようなEL式を使用すると、各バインディングの実装クラスのアクセッサ・メソッドに直接アクセスできます。
ビジュアル・エディタでJSPページを作成し、データ・コントロール・パレットからデータ・バインディングをページにドラッグして追加します。追加した表示用の表や入力用の表は、Oracle ADFバインディング・コンテキストで作成されたOracle ADFバインディング・オブジェクトへの参照によって自動的にデータ・バインドされます。
このアプリケーションのJSPページでは、次の処理を行うために様々なデータ・バインディングが使用されます。コントローラ・レイヤー(実行時)
アプリケーションの実行
実行時、ユーザーの選択内容はページのリクエスト・オブジェクトに設定され、リクエスト・オブジェクトがOracle ADFコントローラ・レイヤーのデータ・ページと通信します。データ・ページでは、受信した情報でOracle ADFバインディング・コンテキストが更新され、適切なページを表示するためのStrutsアクション・マッピングが開始されます。WebページのOracle ADFバインディング式は、解釈されると、データを取得してレンダリングするためのバインディング・コンテキストへのアクセスに必要な情報を提供します。
注意: ビュー・レイヤーにJSPページを作成する前にページ・フロー・ダイアグラムにコントローラ・レイヤー全体を作成することもできますが、多くの場合、データ・ページと関連するWebページを作成してから残りのページ・フローを作成します。後続の項の順序はこの開発方法に対応しています。
この項では、このページ・フローの参照ページ機能の表示に使用されるデータ・ページとWebページの作成方法を説明します。
参照データ・ページと関連するJSPページを作成するには、次のようにします。
この手順を実行すると、次のエントリが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アプリケーションでのページ・フローについて」を参照してください。
「/browsePage」アイコンをダブルクリックし、「ページの選択または作成」ダイアログ・ボックスで「OK」をクリックして、browsePage.jsp
というJSPページを作成します。このとき、「このページをすぐに編集」チェック・ボックスを選択したままにします。
browsePage.jsp
ファイルが作成され、ページがJSPビジュアル・エディタに表示されます。
データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Read-Only Form」を選択し、「DepartmentsView1」を空のJSPページにドロップします。
データ・コントロール・パレットには、そのページで使用可能なビジネス・サービスが表示されます。この手順では、DepartmentsView1というビュー・オブジェクトを使用してHRデータベースのDepartments表のデータを表示する読取り専用フォームを追加します。ユーザーはこの表を移動して、ステップ4で作成するディテール表に部門ごとの従業員を表示します。
データ・バインドされた最初のフォームをWebページに追加すると、DataBindings.cpx
とbrowsePageModelUI.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コンポーネントの挿入」を参照してください。
データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Navigation Button」を選択し、「DepartmentsView1」を既存のフォームの下部にドラッグします。
これらのボタンにより、ユーザーはDepartmentsフォームの行の間を移動できるようになります。
データ・コントロール・パレットで、「DepartmentsView1」ノードの下にある「EmployeesView3」を選択します。「ドラッグ・アンド・ドロップの形式」リストから読取り専用の表を選択し、最初のフォームの下で個々のフォームになるように「EmployeesView3」をドラッグします。
EmployeesView3は、部門ごとに従業員のリストを表示するビュー・オブジェクトです。
列を追加して、選択された行のキーを編集ページに渡すリンクをその中に含めます。表の最初にある列の内側をクリックし、右クリックして、「表」->「列の挿入」のメニュー項目を選択します。
次に、ユーザーを編集ページに移動するリンクを作成します。
「EmployeesView3」ノードの下にある「setCurrentRowWithKey」操作を選択し、ドロップダウン・リストから「Find Row Link」を選択します。パレットの選択結果は、次のようになります。
2番目の行にある最初の列にリンクを追加します(再度、データ・コントロール・パレットの上端から、forEach文の下のフィールドに選択項目をドラッグします)。
次のコード・セグメントでは、JSPページのコード・ビューで操作がどのように表示されるかを示します。
<a href="browsePage.do?event=setCurrentRowWithKey&Arg0=<c:out value='${Row.rowKeyStr}' />">Edit</a>
注意: この例のコードによって示されているように、アクションの場所に通常の<a href>
タグを追加する場合、先頭のスラッシュ(/
)を記述しないでください。
モデル・レイヤーで使用可能な操作の詳細は、「Oracle ADFでサポートされているデータ・コレクション操作について」を参照してください。
リンクを右クリックし、「タグの編集」を選択してリンクを編集します。リンクのテキストを「Select」から「Edit」に変更します。
JSPページのデザイン・ビューは、次のようになります(全体表示ではありません)。
これで、アプリケーションの参照ページが完成しました。
編集フォーム・ページを作成するには、次のようにします。
このデータ・ページを追加すると、struts-config.xml file
ファイルの<action-mappings>
セクションに、前述の場合と同様のエントリが作成されます。
「/editEmpRowPage」アイコンをダブルクリックし、「ページの選択または作成」ダイアログ・ボックスで「OK」をクリックして、editEmpRowPage.jsp
というJSPページを作成します。このとき、「このページをすぐに編集」チェック・ボックスを選択したままにします。
設計時にeditEmpRowPage.jsp
ファイルが作成され、ビジュアル・エディタにページが表示されます。
ユーザーが行データの更新と送信を行うために必要なデータ・バインディングとリンク情報のすべてが、入力フォームに含まれています。これで、従業員の編集フォーム・ページが完成しました。
この項では、ページ・フローで必要なフォワード遷移をページ・フロー・ダイアグラムを使用して作成する方法について説明します。
フォワード遷移を作成するには、次のようにします。
ページ・フローは、次のようになります。
このフォワードの名前は、ユーザーが2番目の表の「Edit」リンクをクリックしたときにアプリケーションが実行する操作であるsetCurrentRowWithKey()に対応します。このリンクは、この使用例の参照ページを作成した際に作成されています。フォワードを追加すると、最初のデータ・ページのアクション・マッピングに<forward>
要素が次のように追加されます。
<forward name="setCurrentRowWithKey" path="/editEmpRowPage.do"/>
操作とアクション・フォワードの関連付けの詳細は、「Oracle ADFでの名前付きイベントの使用」を参照してください。
このフォワードを追加すると、2番目のデータ・ページのアクション・マッピングに<forward>
要素が追加されます。
アプリケーションを実行するには、次のようにします。
struts-config.xml
」タブをクリックして、ページ・フロー・ダイアグラムに戻ります。
編集ページがブラウザで表示されたら、いずれかの行の「Edit」リンクをクリックします。フィールドを編集し、「Submit」をクリックして参照ページに戻ることができます。
注意: データの更新に失敗すると、アプリケーションにより入力ページが再表示されます。
データ・バインドされたStrutsアプリケーションでのページ・フローについて
Strutsアプリケーションでのページ・フローについて
Oracle ADFのバインディングについて
ADFバインディングのプロパティについて
Oracle ADFデータ・コントロールについて
Copyright © 1997, 2004, Oracle. All rights reserved.