DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。
与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。
这样可以减少Action类的数量,并且把相关的业务方法集合在一起使得维护起来更容易。
要使用DispatchAction的功能,需要自己创建一个类,通过继承抽象的DispatchAction得到。
对每个要提供的业务方法必须有特定的方法标识即识别标志。
本文将着重来理解下org.apache.struts.actions.DispatchAction类。
在有些时候一个Action可能有多种操作,比如查询,增加,删除等,都集中在了一个Action中,每个操作都会被封装在一个独立的方法中,此时需要使用某个变量来区分Action接收到的请求需要执行哪个操作,根据操作类型再去调用相应的方法。
DispatchAction类
DispatchAction类为我们实现了这个根据请求动态的分发业务给不同的方法。
比如某个Action地址为”hello.do”,当访问”hello.do?method=add”时,将调用Action类中的add方法;访问”hello.do?method=show”时,将调用Action类中show方法。
这里的请求路径参数”?method=add”,
前者参数名”method”需要在struts-config.xml配置文件中的action元素中使用parameter属性定义,
后者参数值对应着Action类中的同名方法。
我们需要将自己的Action继承DispatchAction类,DispacthAction类又是继承Action类的。然后需要声明自己的业务处理方法,
public class HelloAction extends DispatchAction { public ActionForward add (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response) { System.out.println("HelloAction.add()"); return null; } public ActionForward show (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response) { System.out.println("HelloAction.show()"); return null; } }
这里需要注意的是,自定义的业务处理方法的格式为:
public ActionForward methodName (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response)
{
…
}
方法的返回类型与方法参数都是固定的,方法名可以自定义。
对应的struts-config.xml文件中action元素:
<action attribute="helloForm" input="/index.jsp" name="helloForm" path="/hello" scope="request" type="com.yourcompany.struts.action.HelloAction" cancellable="yes" parameter="method" />
最后一个parameter属性是关键。
当访问 “/hello.do?method=add”时,将调用add方法,输出”HelloAction.add()”
当访问”/hello.do?method=show”时,将调用show方法,输出”HelloAction.show()”
相关推荐
Struts(DispatchAction) + 存储过程 => 实现分页效果
Struts+Spring+Hibernate实现上传下载 本文将围绕SSH文件上传下载的主题,向您... 代码 8 业务接口实现类之save() 1. … 2. public class FileServiceImpl 3. implements FileService 4. { 5. private TfileDAO ...
DispatchAction与MappingDispatchAction
在页面中用js传递执行方法参数,传递到后台执行, 在你用的Action类中的方法名前加“run“及可被调用。
13.8.12 统计调查结果实现类SetSurveyChildCountImpl.java 13.9 编写网上调查系统的控制器类 13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction...
13.8.12 统计调查结果实现类SetSurveyChildCountImpl.java 13.9 编写网上调查系统的控制器类 13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction...
13.8.12 统计调查结果实现类SetSurveyChildCountImpl.java 13.9 编写网上调查系统的控制器类 13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction...
13.8.12 统计调查结果实现类SetSurveyChildCountImpl.java 13.9 编写网上调查系统的控制器类 13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction...
自习struts时做时,大家可以互相交流一下
一个比较简单的struts的dispatchAction 类的入门案例,适合初学者理解dispatchAction
struts中的DispatchAction应用实例
简单的DispatchAction实例。。。。。。。。
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
利用struts标签,dispatchAction,实现增删改查 有利于初学者掌握struts!
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个 action里处理。
Struts 之 DispatchAction add
dispatchAction是用什么技术实现的? 74 72.12. struts2.0的mvc模式?与struts1.0的区别? 74 72.13. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式? 74 73. Spring 75 73.1. Spring 简介 75 73.2. 为...
主要介绍了深入解析Java的Struts框架中的控制器DispatchAction,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下