データ・アクションの連鎖の決定

複数の操作を実行した後で、その操作の結果をWebページに表示する場合は、データ・アクションを連鎖できます。データ・アクションを連鎖すると、各データ・アクションが順序正しく実行されます。

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

連鎖されたデータ・アクションの例

この例では、人事管理者が従業員のレコードを参照し、ページ上の複数レコードの1つをオプションを使用して編集するとします。管理者がページ内の行で編集ボタンをクリックすると、アプリケーションでは選択した従業員を現在の行として設定してから、次のWebページにある編集フォームのデータを準備します。この例では、現在の従業員を設定する別のデータ・アクションが必要です。次の図は、アプリケーションのこの部分がページ・フロー・ダイアグラムでどのように表示されるかを示しています。

Chained Data Action example, described in text

連鎖の最初のアイコンbrowseEmpPageはデータ・ページを表しています。このデータ・ページは、データ・フォワード・アクションのサブクラス(oracle.adf.controller.struts.actions.DataForwardAction)、アクション・フォワード、および参照フォームが表示されるWebページの組合せです。

browseEmpPage.jspで生成されたWebページで、人事管理者が従業員の編集ボタンをクリックすると、アプリケーションでは、edit値を持つアクション・フォワードへのマッピングが検索され、setCurrency.doにフォワードされます。Webページへのフォワードが含まれていないため、setCurrencyはこのダイアグラムではデータ・アクション(oracle.adf.controller.struts.actions.DataAction)として表されています。setCurrencyにより現在の行が設定され、別のアクションeditRowPage.doにフォワードされます。

最後のアイコンeditRowPageは別のデータ・ページです。データ・フォワード・アクション、アクション・フォワードおよび編集フォームが表示されるWebページの組合せを表しています。

次のSnippetは、アプリケーション用のstruts-config.xmlファイルのものです。このSnippetによって、一連の連鎖されたデータ・アクション・サブクラスがより明確に示されます。

<action path="/browseEmpPage"
 <forward name="edit" path="/setCurrency.do"/>
</action>
<action path="/setCurrency" ...
  <forward name="success" path="/editRowPage.do"/>
</action>
<action path="/editRowPage" ... />
</action>

 

連鎖されたデータ・アクションでのredirectの使用方法

Webアプリケーションで、あるデータ・アクションから別のデータ・アクションにフォワードする場合、フォワードではデフォルトにより、最初のデータ・アクションからのリクエスト・パラメータが保持されます。これらのリクエスト・パラメータ内のイベントはJDeveloperにより渡されます。最初のデータ・アクションに含まれているイベントは、連鎖の次のデータ・アクションに移動する際に実行する必要はありません。データ・アクションを連鎖する場合に元のリクエスト・パラメータが渡されないようにするには、最初のデータ・アクションの<forward>redirect属性を"true"に設定し、最初のリクエストからのパラメータをクリアする必要があります。クリアしていない場合、最初のデータ・アクションのfindForwardメソッドが2番目のデータ・アクションにフォワードされる際、最初のリクエストで渡されたフォーム値の再適用が試行され、一連のエラー・メッセージが生成されます。

redirect属性が"true"に設定されている場合は、ブラウザにより新規のリクエストが発行され、前のリクエストからのすべてのパラメータは失われます。


データ・ページまたはデータ・アクションの使用の決定

 

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