|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.apache.struts.action.Action
org.apache.struts.actions.DispatchAction
対応する ActionMapping の parameter プロパティに設定されたされた名前のリクエストパラメータに対応するパブリックメソッドへ処理を割り振る機能を持つ抽象 Action です。 この Action は、アプリケーションの設計を単純化するために、いくつものの類似したアクションを単一の Action クラスに結合したい場合に有用です。
parameter property of the corresponding
ActionMapping. This Action is useful for developers who prefer to
combine many similar actions into a single Action class, in order to
simplify their application design.このアクションを使用する場合には、以下のようなエントリを
struts-config.xml ファイルに記述します:
struts-config.xml file, create an entry like this:
<action path="/saveSubscription"
type="org.apache.struts.actions.DispatchAction"
name="subscriptionForm"
scope="request"
input="/subscription.jsp"
parameter="method"/>
このエントリでは "method" という名前のリクエストパラメータの値を該当する"実行"メソッド(通常の Action.execute メソッドと同様の引数と返り値を持つメソッド)を選択するために使用します。 例えば以下のような3つのメソッドを同一のアクション内に持つことができます:
また、以下のような URL でこの中の1つのメソッドを呼び出すことができます。
http://localhost:8080/myapp/saveSubscription.do?method=update
注 -
呼び出されるメソッド以外のこのアクションに設定された属性は共有されます。
これはひとつの DispatchAction
サブクラスに容易にまとめることのできる処理に関してある種の制約となります。
DispatchAction subclass.
| フィールドの概要 | |
protected java.lang.Class |
clazz
この DispatchAction クラスの Class インスタンス。 |
protected static org.apache.commons.logging.Log |
log
Commons Logging インスタンス。 |
protected static MessageResources |
messages
このパッケージのメッセージリソース。 |
protected java.util.HashMap |
methods
メソッド名をキーとした、このクラス自身の処理を呼ぶための Method オブジェクトのセット。 |
protected java.lang.Class[] |
types
リフレクションにてメソッドを検索する際に使用される引数の型のセット。 |
| クラス org.apache.struts.action.Action から継承したフィールド |
ACTION_SERVLET_KEY, APPLICATION_KEY, DATA_SOURCE_KEY, defaultLocale, ERROR_KEY, EXCEPTION_KEY, FORM_BEANS_KEY, FORWARDS_KEY, LOCALE_KEY, MAPPING_KEY, MAPPINGS_KEY, MESSAGE_KEY, MESSAGES_KEY, MULTIPART_KEY, PLUG_INS_KEY, REQUEST_PROCESSOR_KEY, servlet, SERVLET_KEY, TRANSACTION_TOKEN_KEY |
| コンストラクタの概要 | |
DispatchAction()
|
|
| メソッドの概要 | |
protected ActionForward |
dispatchMethod(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
java.lang.String name)
指定されたメソッドに処理を割り振ります。 |
ActionForward |
execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
指定されたHTTP リクエストを処理し、対応する HTTP レスポンスを返します(または HTTP レスポンスを生成する他の Web コンポーネントに対して転送を行います)。 |
protected java.lang.reflect.Method |
getMethod(java.lang.String name)
指定された名前を持つ、 execute
メソッドと同じ引数、返り値をもつこのクラス内のメソッドを取得します。
|
protected ActionForward |
unspecified(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
指定されたリクエストパラメータの値が設定されていなかった場合に呼ばれるメソッドです。 |
| クラス org.apache.struts.action.Action から継承したメソッド |
execute, generateToken, getDataSource, getDataSource, getLocale, getResources, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, perform, perform, resetToken, saveErrors, saveMessages, saveToken, setLocale, setServlet, toHex |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
protected java.lang.Class clazz
DispatchAction class.
protected static org.apache.commons.logging.Log log
protected static MessageResources messages
protected java.util.HashMap methods
protected java.lang.Class[] types
| コンストラクタの詳細 |
public DispatchAction()
| メソッドの詳細 |
public ActionForward execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.lang.Exception
ActionForward インスタンスまたは、レスポンスが既に完了している場合には
null を返します。
ActionForward instance describing where and how
control should be forwarded, or null if the response has
already been completed.
Action 内の executemapping - このインスタンスを選択する際に使用された ActionMapping
form - このリクエストに対応する ActionForm(もしあれば)
request - 処理中のHTTPリクエスト
response - 生成中のHTTPレスポンス
java.lang.Exception - 例外が発生した場合
protected ActionForward unspecified(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.lang.Exception
DispatchAction のサブクラスで HTTP
の"不正なリクエスト"エラー以外の振る舞いをさせたい場合にはこのメソッドをオーバライドしてください。
DispatchAction should override this method if they wish
to provide default behavior different than producing an HTTP
"Bad Request" error.
java.lang.Exception
protected ActionForward dispatchMethod(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
java.lang.String name)
throws java.lang.Exception
java.lang.Exception
protected java.lang.reflect.Method getMethod(java.lang.String name)
throws java.lang.NoSuchMethodException
execute
メソッドと同じ引数、返り値をもつこのクラス内のメソッドを取得します。
execute
method does.
name - このクラス内のメソッド名
java.lang.NoSuchMethodException - 指定されたメソッドが存在しない場合
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||