複数の操作を実行した後で、その操作の結果をWebページに表示する場合は、データ・アクションを連鎖できます。データ・アクションを連鎖すると、各データ・アクションが順序正しく実行されます。
このトピックでは、次の項目について説明します。
この例では、人事管理者が従業員のレコードを参照し、ページ上の複数レコードの1つをオプションを使用して編集するとします。管理者がページ内の行で編集ボタンをクリックすると、アプリケーションでは選択した従業員を現在の行として設定してから、次のWebページにある編集フォームのデータを準備します。この例では、現在の従業員を設定する別のデータ・アクションが必要です。次の図は、アプリケーションのこの部分がページ・フロー・ダイアグラムでどのように表示されるかを示しています。
連鎖の最初のアイコン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.