Strutsリファレンス(逆引き)

Strutsリファレンス
 
Web struts.wasureppoi.com
フォーム内の複数のボタンからsubmitする(DispatchAction)
スポンサード リンク

フォーム内の複数ボタンからsubmit処理を実行する場合、それぞれの処理の振り分ける方法として
DispatchActionクラスを使用する振り分け方法があります。

アクションクラスは、org.apache.struts.actions.DispatchActionを拡張します。
アクションマッピングには、submitボタンのパラメータ名をparameter属性で指定します。
アクションクラスで実行されるメソッド名は、submitボタンのパラメータに指定される値になります。

JSPのフォーム

<%@ page pageEncoding = "Shift_JIS" %>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<html><body>
<B>入力画面</B><BR><BR>

<html:form action="/dispatch_view" method="post">

<html:submit property="dispatch">dispatchTestA</html:submit>
<html:submit property="dispatch">dispatchTestB</html:submit>

</html:form>

</body></html>

フォーム内に2つのボタンを作成します。
<html:submit>の属性「property」に"dispatch"を指定します。
<html:submit>タグにボタンの表示名にそれぞれ「dispatchTestA」、「dispatchTestB」を指定。


アクションマッピング

<action-mappings>
  <action path="/dispatch_view"
       type="sample.ac.DispatchCheckAction"
       name="DispatchForm"
       scope="session"
       parameter="dispatch">
       <forward
           name="successA"
           path="/jsp/ac/dispatch_view1.jsp" />
       <forward
           name="successB"
           path="/jsp/ac/dispatch_view2.jsp" />
  </action>
</action-mappings>

アクションマッピングの属性「parameter」に、submitボタンのパラメータ名"dispatch"を指定


スポンサード リンク


アクションクラス

package sample.ac;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.DispatchAction;

public class DispatchCheckAction extends DispatchAction {

   public ActionForward dispatchTestA(ActionMapping mapping,
                          ActionForm form,
                          HttpServletRequest request,
                          HttpServletResponse response) {

     System.out.println("dispatchTestA 実行!!");

     return mapping.findForward("successA");
  }

   public ActionForward dispatchTestB(ActionMapping mapping,
                          ActionForm form,
                          HttpServletRequest request,
                          HttpServletResponse response) {

     System.out.println("dispatchTestB 実行!!");

      return mapping.findForward("successB");
   }
}

submitボタンのリクエストパラメータ「dispatch」に「dispatchTestA」が指定された場合は、メソッドdispatchTestAを実行
submitボタンのリクエストパラメータ「dispatch」に「dispatchTestB」が指定された場合は、メソッドdispatchTestBを実行

スポンサード リンク

アクションの種類
アクション(Action)
フォーム内の複数のボタンからsubmitする(DispatchAction)
フォーム内の複数のボタンからsubmitする(LookupDispatchAction)
複数のメソッドを1つのアクションクラスにまとめる(MappingDispatchAction)
既存のサーブレットをStrutsに組み込む(IncludeAction)
リクエストを転送する(ForwardAction)
リクエストを転送する(Forward属性)
アクションをチェーンさせる
異なるモジュールのアクションを呼び出す(SwitchAction)
デフォルトアクションを定義する(unknown属性)
画面遷移を制御する(TransactionToken)
指定したパラメータをアクションに渡す(parameter)
動的なリクエストパラメータを指定してリダイレクトする(RedirectingActionForward)
共通の遷移先を定義する(global-forward)
SSLで通信する(org.apache.struts.action.SecurePlugIn)
エラーメッセージを保存する(saveErrors())
メッセージを保存する(saveMessages())
ユーザー作成オブジェクトをJSPに受け渡す(request)
アクション間でユーザー作成オブジェクトを受け渡す(session)

アクションへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ