DispatchAction,LookupDispatchAction,MappingDispatchAction
1) DispatchAction
就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute被调用的方法. 例如parameter="method"而request.getParameter("method")="save",其中"save"就是MethodName。struts的请求将根据parameter被分发到"save"或者"edit"或者什么。但是有一点,save()或者edit()等方法的声明和execute必须一模一样。
2) LookupDispatchAction
继承DispatchAction, 用于对同一个页面上的多个submit按钮进行不同的响应。其原理是,首先用MessageResource将按钮的文本和ResKey相关联,例如button.save=保存;然后再复写getKeyMethodMap(), 将ResKey和MethodName对应起来, 例如map.put("button.save", "save"); 其配置方法和DispatchAction是一样的, 使用时要这么写:
3) MappingDispatchAction
是1.2新加的, 也继承自DispatchAction. 它实现的功能和上面两个区别较大, 是通过struts-config.xml将多个action-mapping映射到同一个Action类的不同方法上, 典型的配置就是:然后UserAction继承MappingDispatchAction,其中有:
public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
等方法
可以看到, 不管怎么变化, 其实这些类都是把execute给分解开, 不管是save, edit还是其他什么方法, 其实都是和原来的execute是等价的, save和edit之间没有任何直接的关系, 而事实呢,它们是同一个业务模型的两种不同操作。 我觉得这就是一个问题,对于save和edit这两种请求, 我后台逻辑有可能只是调用service的方法那一句不一样,其他代码是完全一致的(例如错误处理, 日志记录等)。因此我想出了这个小东西,在execute方法内部进行局部分解。
分享到:
相关推荐
DispatchAction与MappingDispatchAction
DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个 action里处理。
一个比较简单的struts的dispatchAction 类的入门案例,适合初学者理解dispatchAction
struts中的DispatchAction应用实例
简单的DispatchAction实例。。。。。。。。
Struts(DispatchAction) + 存储过程 => 实现分页效果
在页面中用js传递执行方法参数,传递到后台执行, 在你用的Action类中的方法名前加“run“及可被调用。
struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts 之 DispatchAction add
利用struts标签,dispatchAction,实现增删改查 有利于初学者掌握struts!
这是个SSH整合的简单例子,Action是继承自DispatchAction,多个JSP页面或是form可以跳转到这一个Action中调用同一个或是不同滴方法,有兴趣滴可以看一下,绝对无误!
JavaEE框架 Struts_In_Action(中文版) Struts Action Struts_In_Action LookupDispatchAction DispatchAction 对Action讲的比较仔细,可以深入的了解Struts框架里的基本原理。
自习struts时做时,大家可以互相交流一下
主要介绍了深入解析Java的Struts框架中的控制器DispatchAction,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
Struts 之 DispatchAction
用struts1.2写的一个计算器示例程序,供研究struts原理的初学者参考,其中action继承的DispatchAction。