org.apache.struts.actions
クラス MappingDispatchAction

java.lang.Object
  拡張org.apache.struts.action.Action
      拡張org.apache.struts.actions.DispatchAction
          拡張org.apache.struts.actions.MappingDispatchAction

public class MappingDispatchAction
extends DispatchAction

対応するActionMappingのparameter属性により指名された、 パブリックメソッドへ振り分ける抽象Actionです。 一つのActionクラスに複数の関係付けられたアクションをまとめるため、 開発者にとってこれは有効です。

struts-config.xmlファイルにこのアクションの使用方法を設定するため、 以下の様なエントリを記述します。:


   <action path="/saveSubscription"
           type="org.example.SubscriptionAction"
           name="subscriptionForm"
          scope="request"
          input="/subscription.jsp"
      parameter="method"/>
 

ここで'method'は、 通常のAction.executeメソッドと同様の引数と返り値を持つ、 MappingDispatchActionのサブクラス中のメソッドの名前です。 (Action.executeとはメソッド名が異なります。) 例えば、 以下の様な複数メソッドを使うため、 一つのMappingDispatchActionクラス中に記述し運用するためメソッドをまとめます。

このクラスを参照する<アクション>の設定に一致したメソッドを生成します。


  <action path="/createSubscription" 
          type="org.example.SubscriptionAction"
          parameter="create">
      <forward name="success" path="/editSubscription.jsp"/>
  </action>
 
  <action path="/editSubscription" 
          type="org.example.SubscriptionAction"
          parameter="edit">
      <forward name="success" path="/editSubscription.jsp"/>
  </action>

  <action path="/saveSubscription" 
          type="org.example.SubscriptionAction" 
          parameter="save"
          name="subscriptionForm" 
          validate="true" 
          input="/editSubscription.jsp" 
          scope="request">
      <forward name="success" path="/savedSubscription.jsp"/>
  </action>

  <action path="/deleteSubscription" 
          type="org.example.SubscriptionAction"
          name="subscriptionForm"
          scope="request"
          input="/subscription.jsp"
          parameter="delete">
      <forward name="success" path="/deletedSubscription.jsp"/>
  </action>

  <action path="/listSubscriptions" 
          type="org.example.SubscriptionAction"
          parameter="list">
      <forward name="success" path="/subscriptionList.jsp"/>
  </action>
 

注意 - DispatchActionとは異なり、 マッピング特性がさまざまな扱いの間で異なることが可能なため、 例えば使用するフォームまたはバリデーションが違っても、 同じクラスにアクションをまとめることができるのです。 また、 アプリケーションのユーザが見ることができる様なリクエスト変数は、 扱うメソッドの選択を可能とするために要求されません。

導入されたバージョン:
Struts 1.2
バージョン:
$Revision: 1.6 $ $Date: 2005/05/09 13:25:28 $
翻訳者:
棚澤 昌幸
校正者:

フィールドの概要
private static org.apache.commons.logging.Log log
          Commons Loggingインスタンス。
 
クラス org.apache.struts.actions.DispatchAction から継承したフィールド
clazz, messages, methods, types
 
クラス org.apache.struts.action.Action から継承したフィールド
defaultLocale, servlet
 
コンストラクタの概要
MappingDispatchAction()
           
 
メソッドの概要
 ActionForward execute(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          指定されたHTTPリクエストを処理し、 対応するHTTPレスポンスを生成します。
protected  java.lang.String getMethodName(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String parameter)
          パラメータ値で与えられた、メソッド名を返します。
protected  ActionForward unspecified(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          ActionMappingでパラメータのための値が無い時に振り分けられるメソッドです。
 
クラス org.apache.struts.actions.DispatchAction から継承したメソッド
cancelled, dispatchMethod, getMethod
 
クラス org.apache.struts.action.Action から継承したメソッド
addErrors, addMessages, execute, generateToken, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log

Commons Loggingインスタンス。

コンストラクタの詳細

MappingDispatchAction

public MappingDispatchAction()
メソッドの詳細

execute

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.lang.Exception

指定されたHTTPリクエストを処理し、 対応するHTTPレスポンスを生成します。 (またはHTTPレスポンスを生成する他のWebコンポーネントへフォワードします。) どこにそしてどのようにフォワードすべきかを記述したActionForwardインスタンスまたは、 レスポンスが既に完成されている場合はnullを返します。

このメソッドは、 ActionMappingの'parameter'属性とJavaのイントロスペクションを使い、 MappingDispatchActionの他のメソッドへリクエストを振り分けます。

オーバーライド:
クラス DispatchAction 内の execute
パラメータ:
mapping - このインスタンスを選択するため使われたActionMapping
form - (もしあれば)このリクエストに対応するActionForm Bean
request - 処理中のHTTPリクエスト
response - 生成するHTTPレスポンス
戻り値:
どこにそしてどのようにフォワードすべきかを記述したActionForwardインスタンスまたは、 レスポンスが既に完成されている場合はnull
例外:
java.lang.Exception - 例外が発生した場合

unspecified

protected ActionForward unspecified(ActionMapping mapping,
                                    ActionForm form,
                                    javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response)
                             throws java.lang.Exception

ActionMappingでパラメータのための値が無い時に振り分けられるメソッドです。 ServletExceptionをスローするのではなくデフォルト挙動を提供することを望む場合、 MappingDispatchActionのサブクラスはこのメソッドをオーバライドすべきです。

オーバーライド:
クラス DispatchAction 内の unspecified
パラメータ:
mapping - このインスタンスを選択するため使われたActionMapping
form - (もしあれば)このリクエストに対応するActionForm Bean
request - 処理中のHTTPリクエスト
response - 生成するHTTPレスポンス
戻り値:
どこにそしてどのようにフォワードすべきかを記述したActionForwardインスタンスまたは、 レスポンスが既に完成されている場合はnull
例外:
java.lang.Exception - 例外が発生した場合

getMethodName

protected java.lang.String getMethodName(ActionMapping mapping,
                                         ActionForm form,
                                         javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         java.lang.String parameter)
                                  throws java.lang.Exception

パラメータ値で与えられた、メソッド名を返します。

オーバーライド:
クラス DispatchAction 内の getMethodName
パラメータ:
mapping - このインスタンスを選択するため使われたActionMapping
form - (もしあれば)このリクエストに対応するActionForm Bean
request - 処理中のHTTPリクエスト
response - 生成するHTTPレスポンス
parameter - ActionMappingのパラメータ名
戻り値:
メソッド名
例外:
java.lang.Exception
導入されたバージョン:
Struts 1.2.0


このドキュメントは、Ja-Jakartaにより訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。
Copyright (C) 2000-2004 - Apache Software Foundation