DispatchAction
=======================
我自己認為DispatchAction可用可不用
下邊簡要對它的用法做一些說明
DispatchAction的作用簡單地說就是把原來我們寫在多個acton裡的操作放在同一個
action裡處理
舉個例子就是如果在你的系統中有文章的管理操作
以下操作
三個action[ArtilceSaveAction ArticleViewAction ArticleSearchAction ]分別處理各個操作
雖然說這樣看起來是非常清晰
現在利用DispatchAction
下面以上邊的三個action和到一個action裡為例
import ****;
import org
public class ArticleAction extends DispatchAction{
/**
*AritcleAddAction
*/
public ActionForward add(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response)
throws Exception {
}
/**
*AritcleViewAction
*/
public ActionForward view(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response)
throws Exception {
}
/**
*AritcleSearchAction
*/
public ActionForward search(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response)
throws Exception {
}
}
好了
那就是更改你的action mapping
<action path=
input=
parameter=
scope=
type=
validate=
<forward name=
</action>
看到上邊你會發現
DispatchAction會根據具體的method值來確定調用add
如下面的來自client的請求
article
以上只是根據一個簡單的例子來分析DispatchAction
LookupDispatchAction
========================
org
從名字大概我們也能看出LookupDispatchAction是DispatchAction的子類
下面還是以一個例子來簡要的說明
通常它主要應用於
如下代碼截取自struts
<action path=
type=
name=
scope=
parameter=
<forward name=
</action>
下面給出一個jsp頁面的表單部分
<html:form action=
<html:submit property=
<bean:message key=
</html:submit>
<html:submit property=
<bean:message key=
</html:submit>
</html:form>
那麼相應的ApplicationResources
button
button
此時還並為完成
/**
* Provides the mapping from resource key to method name
*
*@return Resource key / method name map
*/
protected abstract Map getKeyMethodMap();
這個方法你應該在EditArticleAction中實現
protected Map getKeyMethodMap(){
Map map = new HashMap();
map
map
return map;
}
好了
public ActionForward view(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response)
throws IOException
//
//
return mapping
}
public ActionForward delete(ActionMapping mapping
ActionForm form
HttpServletRequest request
HttpServletResponse response)
throws IOException
//
//
return mapping
}
下面實例幾個假設client端的請求
此時頁面有兩個按鈕
當提交按鈕
當提交按鈕
以下還有一點說明
如果我有一個按鈕要出發action的AA方法
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28534.html