このトピックでは、次の操作が可能なデータ・バインドされたStrutsアプリケーションのモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーの作成に必要な手順を説明します。
このトピックでは、次の項目について説明します。
アプリケーションが完成したら、ページ・フロー・ダイアグラムから実行します。次のような参照用のWebページが最初に表示されます。
作成用のWebページは次のようになります(「Create」ボタンをクリックすると、参照している部門に基づいて自動的に部門番号が入力されます)。
次の図に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある手順を簡単に示します。
次に、このページ・フローを作成するためにモデル・レイヤー、コントローラ・レイヤーおよびビュー・レイヤーで実行する必要のある主要な手順を詳しく説明します。
モデル・レイヤー
ビジネス・コンポーネントの作成
「ビジネス・サービスとモデル・レイヤーの設定」に説明されている手順を実行して、このエンドツーエンド・ソリューションのモデル・レイヤーを準備します。そのトピックでは、Struts、UIXおよびOracle ADF Business Componentsを使用するすべてのエンドツーエンド・ソリューションに共通する情報と手順が説明されています。
コントローラ・レイヤー(設計時)
データ・ページの作成
データ・ページは、Oracle ADFアクション・サブクラス、フォワードおよびWebページの組合せです。ページ・フロー・ダイアグラムは簡略化されており、3つの要素のうち1つのみが表示されます。Oracle ADFは、データ・バインドされたWebページのバインディング・コンテキストを準備するためにデータ・ページを提供します。データ・ページでは、ページのモデル・データ・バインディングを管理します。Webページを作成すると、モデル・レイヤーに作成されたビジネス・コンポーネントに基づくデータ・バインディングが作成されます。
ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してデータ・ページを作成します。ページ・フロー・ダイアグラムはグラフィカルなモデラーです。ページ・フロー・ダイアグラムを使用すると、struts-config.xml
ファイルのアクション・マッピング要素が視覚的に表示され、ページ・フローの構築にかかる時間を短縮できます。コンポーネント・パレットでは、データ・バインドされたStrutsアプリケーションで使用可能なコンポーネントに視覚的にアクセスできます。
この例では、データ・アクションはデータ・ページに関連付けられており、結果をWebページに表示する前に追加の作業を実行します。データ・アクションはデータ・ページと同様にモデル・データ・バインディングを管理します。
ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してデータ・ページを作成します。
データ・ページとデータ・アクションの間のフォワードとページ・リンクの作成
フォワード・コンポーネントを追加すると、Strutsのローカル<forward>
要素が作成されます。データ・ページ間に2つのフォワードを追加すると、Webアプリケーションのstruts-config.xml
ファイルでデータ・ページに対するStrutsの<action>
要素の定義が更新され、ユーザーがアプリケーションのページ間を移動できるようになります。ページ・フロー・ダイアグラムとコンポーネント・パレットを使用してフォワードを作成します。
ページ・リンク・コンポーネントを追加すると、WebページからのHTMLリンクの宛先が設定されます。
ビュー・レイヤー
データ・コントロールを使用したデータ・バインドされたUIXページの作成
UIXページのコンテンツにより、アプリケーションWebページの外観が決まります。UIコンポーネントとビジネス・コンポーネントの間の相互作用を定義するデータ・バインディングを追加して、このページにデータを表示および更新します。Webページに追加するデータ・バインディングでは、EL(式言語)の構文が使用されます。${bindings.EmployeesView3}
のようなEL式を使用すると、各バインディングの実装クラスのアクセッサ・メソッドに直接アクセスできます。
このアプリケーションのUIXページでは、次の処理を行うために様々なデータ・コントロールが使用されます。
UIXページはビジュアル・エディタで作成し、データ・コントロール・パレットからページにデータ・コントロールをドラッグして追加します。追加した表示用の表や入力用の表は、Oracle ADFバインディング・コンテキストで作成されたOracle ADFバインディング・オブジェクトへの参照によって自動的にデータ・バインドされます。
コントローラ・レイヤー(実行時)
アプリケーションの実行
実行時、ユーザーの選択内容はページのリクエスト・オブジェクトに設定され、リクエスト・オブジェクトがOracle ADFコントローラ・レイヤーのデータ・ページと通信します。データ・ページでは、受信した情報でOracle ADFバインディング・コンテキストが更新され、適切なページを表示するためのStrutsアクション・マッピングが開始されます。
注意: ビュー・レイヤーにUIXページを作成する前にページ・フロー・ダイアグラムにコントローラ・レイヤー全体を作成することもできますが、多くの場合、データ・ページと関連するWebページを作成してから残りのページ・フロー・ダイアグラムを作成します。後続の項の順序はこの開発方法に対応しています。
この項では、このページ・フローの参照ページ機能の表示に使用されるデータ・ページとWebページの作成方法を説明します。
参照データ・ページおよび関連するUIXページとデータ・アクションを作成するには、次のようにします。
この手順を実行すると、次のエントリがstruts-config.xml
ファイルに作成されます。
<action-mappings>
<action path="/browsePage"
className="oracle.adf.controller.struts.actions.DataActionMapping"
type="oracle.adf.controller.struts.actions.DataForwardAction" name="DataForm"
parameter="unknown">
</action>
データ・ページを追加すると、アクションのclassName
属性とtype
属性にOracle ADFサブクラスが使用されます。Oracle ADFアクション・サブクラスを使用したアクション・マッピングの詳細は、「データ・バインドされたStrutsアプリケーションでのページ・フローについて」を参照してください。
注意: データ・ページを追加すると、DataFormという名前のフォームBeanも作成されます。データの更新時には、UIXではこのフォームBeanは使用されません。
この手順を実行すると、Webページ・ファイルが作成されるためそこからページ・リンクを追加できますが、編集用ではありません。
作成操作を/createEmpActionデータ・アクションに追加します。
データ・コントロール・パレットで、「EmployeesView3」の下の「Operations」ノードの下にある「Create」アイコンを選択し、「/createEmpAction」アイコンまでドラッグします。
「/browsePage」アイコンと「/createEmpAction」アイコンの間にページ・リンクを挿入します。
「/browsePage」アイコンをダブルクリックすると、UIXビジュアル・エディタにそのUIXページが表示されます。
空のフォームの一番下の「createEmpAction.do」ボタンに注意してください。/browsePageから/createEmpActionへのページ・リンクを作成すると、UIX設計時ツールによって自動的にボタンが生成され、関連するWebページに配置されます。
コンポーネント・パレットのすべてのUIXコンポーネントのリストからpageLayout要素をドラッグして、masterDetailPage.uix
のボックスにドロップします。
pageLayout
要素は、ページ全体のテンプレートの役割を果たす高度なレイアウト要素です。ページ作成のためのいくつかのナビゲーション領域およびコンテンツ領域をサポートします。このページに追加した要素は、すべてこの要素に含まれます。
pageLayout
またはその他のUIX要素の詳細を確認するには、コンポーネント・パレットで要素を右クリックし、コンテキスト・メニューの「ヘルプ」を選択します。
データ・コントロール・パレットで「EmployeesView3」を選択します。「ドラッグ・アンド・ドロップの形式」リストからマスター/ディテール(1対多)を選択し、「EmployeesView3」を空のUIXページにドラッグします。
データ・コントロール・パレットには、そのページで使用可能なビジネス・サービスが表示されます。この手順では、ビュー・オブジェクトを使用してHRデータベースの2つの表のデータを表示するマスター/ディテール表を追加します。ユーザーは、部門マスター表内を移動して、ディテール表に部門ごとの従業員を表示します。
データ・バインドされた最初のフォームをWebページに追加すると、DataBindings.cpx
とcreateEmpActionUI.xml
という2つのOracle ADFプロジェクト・ファイルが「ビュー」フォルダに作成されます。DataBindings.cpx
は、アプリケーション全体のバインディング・コンテナを定義します。createEmpActionUI.xml
は、データ・アクションが使用するデータ・コントロールを定義するモデル参照です。
この時点で、struts-config.xml
ファイルが更新されます。次のように<set-property>
要素がアクション・マッピングに追加され、関連付けられている<action>
要素にモデル参照が定義されます。
<set-property property="modelReference" value="createEmpActionUIModel"/>
Oracle ADFプロジェクト・ファイルの詳細は、「ADF固有のプロジェクト・ファイルについて」を参照してください。データ・コントロール・パレットの詳細は、「データ・コントロール・パレットを使用したUIコンポーネントの挿入」を参照してください。
モデル・レイヤーで使用可能な操作の詳細は、「Oracle ADFでサポートされているデータ・コレクション操作について」を参照してください。
コンポーネント・パレットで、「pageButtonBar」を選択してページ内のpageButtonsスロットまでドラッグします。
データ・コントロール・パレットで、一番上の「Operations」ノードの「Commit」を選択してpageButtonバーまでドラッグします。
データ・コントロール・パレットで、一番上の「Operations」ノードの「Rollback」を選択してpageButtonバーまでドラッグします。
ボタンを選択した状態で、プロパティ・インスペクタでテキスト・フィールドに「従業員レコードの作成」と入力します。
UIXページの設計ビューは次のようになります。
ページを保存して、UIXビジュアル・エディタの上部の「struts-config.xml」タブをクリックして、ページ・フロー・ダイアグラムに戻ります。
挿入ページを作成するには、次のようにします。
このデータ・ページを追加すると、struts-config.xml
ファイルの<action-mappings>
セクションに最初のデータ・ページの場合と同様のエントリが作成されます。
createEmpPage.uix
」を選択します。このとき、「このページをすぐに編集」チェック・ボックスの選択を解除します。
この手順を実行すると、Webページ・ファイルが作成されるためそこからページ・リンクを追加できますが、編集用ではありません。
「/createEmpPage」アイコンと「/browsePage」アイコンの間にページ・リンクを挿入します。
この時点で、ページ・フローは次のようになります。
2番目のデータ・アクション上に黄色の警告が付いていることに注意してください。次の「アクションに対するフォワードの作成」の項でこのデータ・アクションのフォワード遷移を作成すると、黄色の警告表示は消えます。この警告は、アクションの定義が完了していないことを示します。
/createEmpPageのデータ・ページ・アイコンをダブルクリックし、「ページの選択または作成」ダイアログ・ボックスで「OK」をクリックし、関連付けられているUIXページを開きます。
空のフォームの一番下のcancelAction.doとbrowsePage.doに注意してください。前の2つの手順でページ・リンクを作成すると、UIX設計時ツールによって自動的にボタンが生成され、関連するWebページに配置されます。
データ・コントロール・パレットで「EmployeesView3」ノードを選択します。「ドラッグ・アンド・ドロップの形式」リストの入力フォーム(ナビゲーション付き)を選択し、「EmployeesView3」を空のUIXページにドラッグします。次のスクリーン・キャプチャのようになります。
デフォルトでフォームに作成されている「Submit」ボタンをクリックすると、プロパティ・インスペクタにボタンの属性が表示されます。「text」フィールドに「変更内容を送信」、「Event」フィールドに「empReturn」と入力します。
「Event」フィールドのtext属性の値であるempReturnは、「アクションに対するフォワードの作成」の項でeditPageデータ・フォワード・アクション・クラスに対して定義するフォワードの名前に対応しています。実行時に、データ・フォワード・アクション・クラスにより、イベント名と同じname
属性を持つ<forward>
要素がアクション・マッピングに含まれるかどうかが確認され、含まれる場合は正しい宛先へフォワードされます。
「変更内容を送信」ボタンのイベント・ハンドラを作成します。
ボタンが選択された状態で、プロパティ・インスペクタで「イベント・ハンドラの設定」をクリックし、表示されるダイアログ・ボックスで「OK」をクリックします。構造ウィンドウでイベント・ハンドラがハイライトされます。イベントを右クリックして、「eventの中に挿入 - empReturn」->「UIXサーブレット」->「go」を選択し、イベント・ハンドラを追加します。goの挿入のダイアログが開いたら、「name」フィールドに「empReturn」と入力します。[Enter]を押して「OK」をクリックします。
ボタンを選択した状態で、プロパティ・インスペクタで「text」フィールドに「参照に戻る」と入力します。
ボタンを選択した状態で、プロパティ・インスペクタで「text」フィールドに「取消」と入力します。この時点で、挿入ページは次のようになります。
ページを保存して、UIXビジュアル・エディタの上部の「struts-config.xml」タブをクリックして、ページ・フロー・ダイアグラムに戻ります。
この項では、ページ・フローで必要なフォワード遷移をページ・フロー・ダイアグラムを使用して作成する方法について説明します。
フォワード遷移を作成するには、次のようにします。
操作とアクション・フォワードの関連付けの詳細は、「アクション・フォワードを定義するためのイベントの使用」を参照してください。
このフォワードを追加すると、2番目のデータ・ページのアクション・マッピングに<forward>
要素と<set-property>
要素が追加されます。
createEmpPageから/browsePageへのフォワード遷移を作成します。遷移の名前をempReturnに変更します。
ページ・リンク(「変更内容を送信」ボタンに対応)とフォワード(「Commit」ボタンに対応)の両方は、/createEmpPageから/browsePageへの方向で指定されます。
アプリケーションを実行するには、次のようにします。
「/browsePage」アイコンを右クリックして「実行」を選択すると、参照ページが表示されます。
このアプリケーションでは次の操作を実行できます。
注意: データの更新に失敗すると、エラー・メッセージが入力ページに表示されます。
データ・バインドされたStrutsアプリケーションでのページ・フローについて
Strutsアプリケーションのページ・フローについて
Oracle ADFのバインディングについて
ADFバインディングのプロパティについて
Oracle ADFデータ・コントロールについて
ADF UIXページの使用
Copyright © 1997, 2004, Oracle. All rights reserved.