このトピックでは、次の操作が可能なデータ・バインドされたStrutsアプリケーションのモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーの作成に必要な手順を説明します。
ページ・フローが完成したら、ページ・フロー・ダイアグラムから実行します。次のようなマスター/ディテールWebページが表示されます。
次の図に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある手順を簡単に示します。
次に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある主要な手順を詳しく説明します。
モデル・レイヤー
ビジネス・コンポーネントの作成
「ビジネス・サービスおよびモデル・レイヤーの設定」で説明されている手順を実行して、このエンドツーエンド・ソリューションのモデル・レイヤーを作成します。そのトピックでは、Struts、JSPおよびOracle ADF Business Componentsを使用するすべてのエンドツーエンド・ソリューションに共通する情報と手順が説明されています。
JDeveloperでは、イテレータ・バインディングのデフォルト・レンジ・サイズは10です。レンジ・サイズを変更するには、構造ウィンドウを使用してイテレータを検索し、プロパティ・インスペクタでレンジ・サイズを変更します。
コントローラ・レイヤー(設計時)
データ・ページの作成
この例では、1つのデータ・ページを使用します。データ・ページは、Oracle ADFアクション・サブクラス、フォワードおよびWebページの組合せです。ページ・フロー・ダイアグラムは簡略化されており、3つの要素のうち1つのみが表示されます。Oracle ADFは、データ・バインドされたWebページのバインディング・コンテキストを準備するためにデータ・ページを提供します。データ・ページでは、ページのモデル・データ・バインディングを管理します。Webページを作成すると、モデル・レイヤーに作成されたビジネス・コンポーネントに基づくデータ・バインディングが作成されます。
ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してデータ・ページを作成します。ページ・フロー・ダイアグラムはグラフィカルなモデラーです。ページ・フロー・ダイアグラムを使用すると、struts-config.xml
ファイルのアクション・マッピング要素が視覚的に表示され、ページ・フローの構築にかかる時間を短縮できます。コンポーネント・パレットでは、データ・バインドされたStrutsアプリケーションで使用可能なコンポーネントに視覚的にアクセスできます。
ビュー・レイヤー
データ・コントロールを使用したデータ・バインドJSPページの作成
JSPページのコンテンツにより、アプリケーションWebページの外観が決まります。UIコンポーネントとビジネス・コンポーネントの間の相互作用を定義するデータ・バインディングを追加して、このページにデータを表示および更新します。Webページに追加するデータ・バインディングでは、EL(式言語)の構文が使用されます。${bindings.EmployeesView3}
のようなEL式を使用すると、各バインディングの実装クラスのアクセッサ・メソッドに直接アクセスできます。
このアプリケーションのJSPページでは、次の処理を行うために様々なデータ・バインディングが使用されます。
ビジュアル・エディタでJSPページを作成し、データ・コントロール・パレットからデータ・コントロールをページにドラッグして追加します。追加した表示用の表や入力用の表は、Oracle ADFバインディング・コンテキストで作成されたOracle ADFバインディング・オブジェクトへの参照によって自動的にデータ・バインドされます。
コントローラ・レイヤー(実行時)
アプリケーションの実行
実行時、ユーザーの選択内容はページのリクエスト・オブジェクトに設定され、リクエスト・オブジェクトがOracle ADFコントローラ・レイヤーのデータ・ページと通信します。データ・ページでは、受信した情報でOracle ADFバインディング・コンテキストが更新され、適切なページを表示するためのStrutsアクション・マッピングが開始されます。WebページのOracle ADFバインディング式は、解釈されると、データを取得してレンダリングするためのバインディング・コンテキストへのアクセスに必要な情報を提供します。
この項では、ページ・フロー・ダイアグラムとビジュアル・エディタを使用して、マスター表とそれに関連するナビゲーション、検索および更新機能を作成する方法を説明します。
参照データ・ページと関連するJSPページを作成するには、次のようにします。
この手順を実行すると、次のエントリが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アプリケーションでのページ・フローについて」を参照してください。
「/browseDeptEmpPage」アイコンをダブルクリックし、「ページの選択または作成」ダイアログ・ボックスで「OK」をクリックして、browseDeptEmpPage.jsp
というJSPページを作成します。このとき、「このページをすぐに編集」チェック・ボックスを選択したままにします。
browseDeptEmpPage.jsp
ファイルが作成され、ページがJSPビジュアル・エディタに表示されます。
データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Input Form」を選択し、「DepartmentsView1」を空のJSPページにドロップします。
データ・コントロール・パレットには、そのページで使用可能なビジネス・サービスが表示されます。この手順では、DepartmentsView1というビュー・オブジェクトを使用してHRデータベースのDepartments表のデータを表示する読取り専用フォームを追加します。ユーザーはこの表を移動して、後のステップで作成するディテール表に部門ごとの従業員を表示します。
データ・バインドされた最初のフォームをWebページに追加すると、DataBindings.cpx
とbrowseDeptEmpPageUI.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コンポーネントの挿入」を参照してください。
データ・コントロール・パレットで「DepartmentsView1」を選択します。「ドラッグ・アンド・ドロップの形式」リストから「Navigation Button」を選択し、「DepartmentsView1」を既存のフォームにドラッグします。フォームの内部にそのボタンが配置されたことを確認します。
ナビゲーション・ボタン表の「Last」ボタンのセルにカーソルを合せ、メニューから「設計」->「表」->「行または列の挿入」を選択します。「行または列の挿入」ダイアログで、次のものを選択します。
データ・コントロール・パレットで、「DepartmentsView1」の下にある「Operations」ノードを開きます。前のステップで作成した4つの空の列に、次の各操作をドラッグします。
これらはDepartmentsView1固有の操作であり、このビュー・オブジェクト内のレコードのみを対象にします。
データ・コントロール・パレットで、トップ・レベルの「Operations」ノードを開きます。ナビゲーション表にある残り2つの空の列に、次の各操作をドラッグします。
これらはグローバル操作であり、ページで加えられたすべての変更に対して適用されます。この時点で、ページのデザイン・ビューは、次のようになります。
このセクションでは、ビジュアル・エディタを使用して、ディテール表とそれに関連するナビゲーション機能を作成する方法を説明します。
データ・コントロール・パレットで、「EmployeesView3」の下にある「Operations」ノードを開きます。「Next Set」を選択し、「ドラッグ・アンド・ドロップの形式」リストから「Button with Form」を選択します。「Next Set」を、ディテール表の下にあるJSPページにドラッグします。
フォームを含めるために、「Button with Form」を選択する必要があります。これは、どのStrutsアクションがボタンの動作を処理するかを指示します。次のコード・セグメントでは、「ソース」タブで、これがどのように表示されるかを示します。
<form method="POST" action="browseDeptEmpPage.do">
<input type="hidden" name="<c:out value='${bindings.statetokenid}'/>" value="<c:out value='${bindings.statetoken}'/>"/>
<input type="submit" name="event_NextSet" value="NextSet" <c:out value="${bindings.NextSet.enabledString}" />/>
</form>
アプリケーション・ナビゲータで、「browseDeptEmpPageUIModel.xml」ノードをクリックします。このノードが表示されていない場合、「ViewController」->「アプリケーション・ソース」->「表示」の各ノードを開きます。
アプリケーション・ナビゲータでUIモデル・ファイル・ノードを選択した段階で、構造ウィンドウではUIモデル・ビューが表示されます。このビューでは、 browseDeptEmpPage.jsp
で個別のノードとして使用されているデータ・コントロールとイテレータが表示されます。
作成したデータ・ページをStrutsページ・フロー・ダイアグラムから実行します。
アプリケーションを実行するには、次のようにします。
struts-config.xml
」タブをクリックして、ページ・フロー・ダイアグラムに戻ります。
データ・バインドされたStrutsアプリケーションでのページ・フローについて
Strutsアプリケーションでのページ・フローについて
Oracle ADFのバインディングについて
ADFバインディングのプロパティについて
Oracle ADFデータ・コントロールについて
Copyright © 1997, 2004, Oracle. All rights reserved.