public class DispatchAction extends ActionEx
リクエストパラメータを用いて、遷移先を決定する。
Strutsが提供しているDispatchAction、LookupDispatchActionと仕様が異なるため、注意すること。
まず、リクエストパラメータキーの設定をBean定義ファイルで必要に応じて行う (デフォルト値は"event")。
下記に記した定義ファイルは リクエストパラメータのキーをcustom-eventに設定する例である。
Bean定義ファイルの設定
<bean name="/dispatch" scope="prototype"
class="jp.terasoluna.fw.web.struts.actions.DispatchAction">
<property name="event">
<value>custom-event</value>
</property>
</bean>
次に、遷移文字列を決定する。優先順位は次の通り。
struts-config.xmlの設定
<action path="/dispatch"
name="_sampleForm"
scope="session"
input="/prev.jsp">
<forward name="regist" path="/userRegist.do"/>
<forward name="search" path="/userSearch.do"/>
<forward name="update" path="/userUpdate.do"/>
<forward name="decide" path="/prev.do"/>
<forward name="default" path="/prev.do"/>
</action>
JSPでの記述例
リクエストパラメータの値に"forward_" + 論理フォワード名と定義する。
・・・
<html:radio property="custom-event" value="forward_regist"/>
<html:radio property="custom-event" value="forward_search"/>
<html:radio property="custom-event" value="forward_update"/>
<html:radio property="custom-event" value="forward_#input"/>
<html:submit property="forward_decide" value="決定"/>
<html:submit value="戻る"/>
・・・
各操作を行った場合の遷移先は次の通り。
FORWARD_TXTOKEN_ERROR
コンストラクタと説明 |
---|
DispatchAction() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected org.apache.struts.action.ActionForward |
cancelled(org.apache.struts.action.ActionMapping mapping,
org.apache.struts.action.ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
リクエストにキャンセルフラグが設定されている場合の遷移先を
決定する。
|
protected String |
doDetermineForward(Map params,
String event)
リクエストパラメータに基づいてフォワード先をディスパッチする。
|
org.apache.struts.action.ActionForward |
doExecute(org.apache.struts.action.ActionMapping mapping,
org.apache.struts.action.ActionForm form,
javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse res)
フォワード先の振り分け処理を行う。
|
protected boolean |
exists(Map params,
String name)
リクエストパラメータに、nameで指定した名称のパラメータが
存在しているかを判定する。
|
void |
setEvent(String value)
遷移先を表すプロパティ名を設定する。
|
addErrors, addMessages, execute, isSaveToken, isTokenCheck, processTokenCheck, setSaveToken, setTokenCheck
addErrors, addMessages, execute, generateToken, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet
public void setEvent(String value)
value
- 遷移先プロパティ名public org.apache.struts.action.ActionForward doExecute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
フォワード先を振り分けた後、サーバ閉塞通過フラグを
削除する。
実際の遷移先は、doDetamineForward()が決定している。
protected String doDetermineForward(Map params, String event)
params
- リクエストパラメータ(マップ形式)event
- アクションマッピングに指定されたイベント名protected boolean exists(Map params, String name)
params
- リクエストパラメータ(マップ形式)name
- リクエストパラメータ名true
protected org.apache.struts.action.ActionForward cancelled(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
mapping
- アクションマッピングform
- アクションフォームrequest
- HTTPリクエストresponse
- HTTPレスポンスCopyright © 2016. All Rights Reserved.