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

Strutsリファレンス
 
Web struts.wasureppoi.com
複数のメソッドを1つのアクションクラスにまとめる(MappingDispatchAction)
スポンサード リンク

複数のリクエストを1つのアクションクラスに、メソッド別に纏めることができます。

これにより関連する機能を一つのアクションクラスに纏めることもできるようになります。

アクションクラスは、org.apache.struts.actions.MappingDispatchActionを拡張します。
アクションマッピングには、該当アクションパスで実行するメソッドをparameter属性で指定します。


アクションマッピング

<action-mappings>

   <action path="/data_create"
        type="sample.ac.MappingDispatchCheckAction"
        name="DispatchForm"
        scope="session"
        parameter="create">
        <forward
           name="success"
           path="/jsp/ac/data_create.jsp"/>
   </action>

   <action path="/data_modify"
        type="sample.ac.MappingDispatchCheckAction"
        name="DispatchForm"
        scope="session"
        parameter="modify">
        <forward
           name="success"
           path="/jsp/ac/data_modify.jsp" />
  </action>

  <action path="/data_delete"
        type="sample.ac.MappingDispatchCheckAction"
        name="DispatchForm"
        scope="session"
        parameter="delete">
        <forward
           name="success"
           path="/jsp/ac/data_delete.jsp" />
  </action>

</action-mappings>

アクション定義の属性「parameter」に、実行するメソッド名をそれぞれcreate、modify、deleteを指定。


スポンサード リンク


アクションクラス

package sample.ac;

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

public class MappingDispatchCheckAction extends MappingDispatchAction {

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

      System.out.println("create処理 実行!!");

     return mapping.findForward("success");
  }

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

      System.out.println("modify処理 実行!!");

     return mapping.findForward("success");
  }

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

      System.out.println("delete処理 実行!!");

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



スポンサード リンク

アクションの種類
アクション(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へ