DispatchAction是一个抽象类,继承于Action。它帮助我们使用一个Action类,来集中处理多个操作,从而节省了类的数目。
例如:下面的例子。按照struts的流程来分析,JSP-->ActionServlet-->struts-config.xml-->Action-->ActionForward-->browser
1.JSP页面提交表单到ActionServlet,ActionServlet截取URL,然后根据struts-config.xml配置文件去找相应的Action,执行相应的操作(这里Action只有一个即UserAction,如何区别是何种操作?---根据方法名来找到不同的操作。)颜色相同一定要匹配。
action="usermaintain.do?command=add";
action="usermaintain.do?command=del";
action="usermaintain.do?command=modify";
2.UserAction继承于DispatchAction,包含了三个操作方法,分别是add(),del(),modify(),方法名称与form表单传递的属性一一对应
public class UserAction extends DispatchAction {
public ActionForward add(mapping, form, request, response) throws Exception {
return mapping.findForward("add_success");
}
public ActionForward del(mapping, form, request, response) throws Exception {
return mapping.findForward("del_success");
}
public ActionForward modify(mapping, form, request, response) throws Exception {
return mapping.findForward("modify_success");
}
}
3.struts-config.xml中,parameter的属性值是可以任意起的,即command可以是其他。只要保证form表单中传参数时与之统一就行。
<action-mappings>
<action path="/user/usermaintain"
type="com.bjsxt.drp.bussiness.usermgr.actions.UserAction"
name="userForm"
scope="request"
parameter="command"
>
<forward name="add_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="del_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="modify_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="list_success" path="/user/userlist.jsp"/>
<forward name="find_success" path="/user/usermodify.jsp"/>
</action>
</action-mappings>
这里的forward有的是直接提交到一个JSP页面,有的是提交到另一个动作。forward中name值和UserAction中findForward匹配。
注:1.DispatchAction中各个操作方法的参数如add(),del(),modify()和execute()方法的参数相同。
2.DispatchAction通过方法名来区别各个不同的操作。
3.在调用DispatchAction的时候command参数是不能为空的,如果空,DispatchAction会调用unspecified方法并抛出异常。详见下一遍DispatchAction的流程
4.UserAction 可以复写execute方法,但复写完成之后必须显示调用它的上层实现DispatchAction.execute()
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/switzerland/archive/2008/10/10/3051950.aspx
分享到:
相关推荐
DispatchAction与MappingDispatchAction
struts中的DispatchAction应用实例
一个比较简单的struts的dispatchAction 类的入门案例,适合初学者理解dispatchAction
简单的DispatchAction实例。。。。。。。。
DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个 action里处理。
Struts(DispatchAction) + 存储过程 => 实现分页效果
在页面中用js传递执行方法参数,传递到后台执行, 在你用的Action类中的方法名前加“run“及可被调用。
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
Struts 之 DispatchAction add
利用struts标签,dispatchAction,实现增删改查 有利于初学者掌握struts!
这是个SSH整合的简单例子,Action是继承自DispatchAction,多个JSP页面或是form可以跳转到这一个Action中调用同一个或是不同滴方法,有兴趣滴可以看一下,绝对无误!
自习struts时做时,大家可以互相交流一下
主要介绍了深入解析Java的Struts框架中的控制器DispatchAction,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
Struts 之 DispatchAction
用struts1.2写的一个计算器示例程序,供研究struts原理的初学者参考,其中action继承的DispatchAction。
JavaEE框架 Struts_In_Action(中文版) Struts Action Struts_In_Action LookupDispatchAction DispatchAction 对Action讲的比较仔细,可以深入的了解Struts框架里的基本原理。
网上书店(使用技术为JSP+Servlet+IBatis,完成前台功能) 网上银行(使用技术为Struts+Hibernate。...Action采用DispatchAction, 所有的表单Bean采用动态验证表单(DynaValidatorActionForm)。 (仅供学习参考!)