データ・バインドされたStrutsアプリケーションでのページ・フローについて

Strutsページ・フロー・ダイアグラムを使用すると、ビジネス・サービスへのアクセスにOracle ADFデータ・コントロールを使用し、ページ・ナビゲーションの管理にStrutsコントローラを使用する、データ・バインドされたアプリケーションを作成できます。

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

概要

Oracle ADFには、データ・バインドされたWebページのバインディング・コンテナを準備するために次のクラスが用意されています。

これらのクラスは両方ともStrutsアクションであり、LifecycleProcessorに処理を委任します。つまりADFライフサイクルを実行します。

データ・バインドされたWebアプリケーションでは、Struts構成ファイル内のエントリによってこれらのクラスが使用されます。データ・アクションまたはデータ・ページをページ・フロー・ダイアグラムに追加すると、JDeveloperによってこれらのエントリが作成されます。

また、データ・コントロール・パレットから、データ・ページまたはデータ・アクションに関連付けられていないWebページにデータ・コントロールを追加すると、JDeveloperでは、選択に応じて、データ・バインディング・コンテキストを提供するためのデータ・ページまたはデータ・アクションにWebページが変換されます。

DataForwardActionおよびDataActionクラスはorg.apache.struts.action.Actionを拡張します。これらのクラスはLifecycleProcessorに処理を委任します。ページのPageControllerでは、アクションの宛先を指定するfindForward()メソッドが提供されます。

データ・アクション、データ・ページおよび標準のStrutsアクション・クラスでは、同じ一般的な機能が実行されます。ただし、実行時に、データ・アクションまたはデータ・フォワード・アクションでは、ページ定義ファイルを使用してOracle ADFバインディング・オブジェクトが参照されます。

データ・ページまたはデータ・アクションを使用する場合の詳細は、「データ・ページまたはデータ・アクションの使用を決定する場合」を参照してください。

データ・コントロール・マッピング用のADF定義ファイル

アプリケーションでADFデータ・コントロールを使用するとき、ADFでは、各ページで使用されるデータ・コントロールの識別に次の定義ファイルが使用されます。

クライアント・プロジェクト定義ファイルは、アプリケーション内のいずれかのページでADFデータ・コントロールを初めて使用したときに作成されます。ページ定義ファイルは、ページにデータ・コントロールを初めて追加したときに、そのページに対して作成されます。

ADFプロジェクト定義ファイルの詳細は、「Oracle ADFプロジェクト・ファイルについて」を参照してください。

データ・バインドされたStrutsアプリケーションのデータ・ページ

Strutsページ・フロー・ダイアグラムを使用してデータ・ページを作成すると、JDeveloperによってStruts構成ファイルが更新されます。たとえば、データ・ページのアイコンを空のページ・フロー・ダイアグラムにドラッグしてデータ・ページの名前を/myPageに変更すると、データ・ページのアイコン上に警告アイコンが重なって表示され、関連するWebページが存在していないことが示されます。

警告表示のあるデータ・ページ・アイコン

JDeveloperによって、Struts構成ファイルに次のエントリが作成されます。

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

これらのエントリには、次のものが含まれています。

Strutsアプリケーション内に関連Webページ(この例ではmyPage.jsp)を作成すると、データ・ページ・アイコンの上に警告アイコンは表示されなくなります。

同時に、Struts構成ファイル内のアクション・マッピングが太字で示したように変更されます。

<action-mappings>
  <action path="/myPage"
    className="oracle.adf.controller.v2.struts.actions.DataActionMapping"
    unknown="false"
    type="oracle.adf.controller.v2.struts.actions.DataForwardAction"
    name="DataForm" parameter="/myPage.jsp"/>
</action-mappings>    

アクション・マッピング内のparameter属性の値が、関連するWebページ・ファイルの名前に更新されます。最初のデータ・コントロールを関連するWebページに追加すると、ページ名に基づいた名前でページに対するページ定義ファイルも作成され、存在していない場合はクライアント・プロジェクト定義ファイルも作成されます。

データ・ページの作成方法の詳細は、「ページ・フロー・ダイアグラムへのデータ・ページの追加」を参照してください。

データ・バインドされたStrutsアプリケーションのデータ・アクション

Strutsページ・フロー・ダイアグラムを使用してデータ・アクションを作成すると、JDeveloperによってstruts-config.xmlファイルが更新されます。たとえば、データ・アクションのアイコンを空のページ・フロー・ダイアグラムにドラッグしてデータ・アクションの名前を次の図に示すように変更するとします。

警告表示のあるデータ・アクション・アイコン

JDeveloperによって、Struts構成ファイルに次のエントリが作成されます。

<form-beans>
  <form-bean name="DataForm"
    type="oracle.adf.controller.v2.struts.forms.BindingContainerActionForm"/>
</form-beans>
<action-mappings>
  <action path="/myAction"
    className="oracle.adf.controller.v2.struts.actions.DataActionMapping"
    unknown="false"
    type="oracle.adf.controller.v2.struts.actions.DataAction"
    name="DataForm"/>
</action-mappings>    

データ・アクションとデータ・ページの処理方法の主要な相違点は次の2つです。

データ・アクションを使用する場合は、コンポーネント・パレットから「Forward」をページ・フロー・ダイアグラムにドラッグして<forward>要素を定義します。たとえば、別のデータ・アクション、データ・ページ、ページ・フォワードまたはWebページにフォワードできます。この例では、WebページのmyPage.jspにフォワードされます。

Webページへのフォワードが定義されたデータ・アクション

フォワードを追加すると、データ・アクションのアクション・マッピングが太字で示したように更新されます。

<action path="/myAction"
    className="oracle.adf.controller.v2.struts.actions.DataActionMapping"
    unknown="false"
    type="oracle.adf.controller.v2.struts.actions.DataAction"
    name="DataForm">
  <forward name="success" path="/newPage.jsp">
</action>    

JDeveloperは、アクション<forward>要素をデフォルト値であるsuccessに追加します。また、この場合のパスは /newPage.jspです。

最初のデータ・コントロールを関連するWebページに追加すると、ページ名に基づいた名前でページに対するページ定義ファイルも作成され、存在していない場合はクライアント・プロジェクト定義ファイルも作成されます。

Struts構成ファイルでのアクション・マッピングの表現方法の詳細は、「WebアプリケーションでのStrutsページ・フローについて」を参照してください。

データ・アクションの作成方法の詳細は、「ページ・フロー・ダイアグラムへのデータ・アクションの追加」を参照してください。

データ・バインドされたStrutsアプリケーションのページおよびページ・フォワード

アプリケーションの設計によっては、データ・ページのかわりに、別のページ・フォワードまたはページにフォワードするデータ・アクションの使用が必要になる場合があります。たとえば複数のデータ・アクションから1つのページにフォワードする場合に、この方法の使用を検討します。ページ・フォワードでは、宛先のWebページへの単純なフォワードが実行されます。ページ・フォワードの作成の詳細は、「ページ・フロー・ダイアグラムでのアクション・フォワードStruts定義へのページ・フォワード要素の使用」を参照してください。

コンポーネント・パレットには、Strutsアプリケーションで使用できるページ要素も用意されていますが、このページ要素はコントローラを介したページ・ナビゲーション管理ができません。

ページまたはページ・フォワードでデータ・コントロールを使用する場合は、Webページがデータ・アクションに関連付けられているか、またはデータ・ページの一部である必要があります。アクション・クラスに関連付ける前に、データ・コントロールをコンポーネント・パレットからWebページにドラッグすると、次のダイアログが表示されます。

「ページ・フロー・データ・バインディング・オプションの選択」ダイアログ

このダイアログを使用して、現在のコンテキストでデータ・ページを使用するか、データ・アクションを使用するかを選択できます。データ・バインディングが必要なページを変換する際のデフォルト選択を設定することもできます。


JDeveloperでのStrutsサポートについて
Strutsアプリケーションでのページ・フローについて
Oracle ADFデータ・フォームBeanについて
Oracle ADFプロジェクト・ファイルについて

Oracle ADFアプリケーション用のStrutsページ・フローの作成
JDeveloperでの実行