1.Action,其它类型的Action的父类,只能实现其中的 execute()方法来处理业务,缺点是,一个Action只能处理一个业务,不能自定义处理多个业务,所以一般很少用。

MappingDispatchAction为每个不同的处理方法都要在struts-config.xml配置对应的action而DispatchAction

只需要配置一个然后利用给parameter字段赋值来区分。从我做项目的经验来说,使用MappingDispatchAction恐怕是

最方便最直接了,因为它最容易调试。因为根据form提交的action的不同就可以区分不同的方法(例如增加,删除,修

改)但是缺点就是会是配置文件的内容变多,而DispatchAction方法的配置看上去比较简洁,每种方法各有千秋。

5.DispatcherAction 类

DispatcherAction:能够在同一个 Action 类中完成一组相关的业务操作,以达到减少重复编程,使程序更加便于维护。
创建一个扩展 DispatchAction 类的子类,不必覆盖 excute() 方法,而是创建一些实现业务逻辑的方法,这些业务逻辑方法都应该和 excute() 方法具有相同的方法签名,即它们的参数和返回类型都应该相同,此外也应该声明抛出Exception 异常.
在配置 DispatchAction 类时,需要把 parameter 属性的值设置为”method”.
把 parameter 的属性配置为”method”后,当用户请求访问 DispatchAction 时,应该提供 method 请求参数.例如:
  http://localhost:9090/test/test?method=add
<action>的parameter属性:指定 Action 的配置参数。在Action类的 excute() 方法中,可以调用 ActionMapping 对象的 getParameter() 方法来读取配置参数

6.LookupDispatchAction 类

LookupDispatchAction 类:DispatcherAction 的子类,在该类中可以定义多个业务方法,适用于一个表单中有多个提交按钮,且这些按钮又都有一个共同名字的场合。
它与DispatchAction类的作用差不多,唯一不同的是:这个类是通过资源包中的key作为请求参数来进行对方法的映射,而DispatchAction是通过请求参数来选择方法.
LookupDispatchAction的用法:
用MessageResource将按钮的文本和ResKey相关联
在Action配置中一个parametr属性,属性值与submit按钮的property属性值相同,这个属性可以指定执行LookupDispatchAction中对应的方法  
继承LookupDispatchAction,重写getKeyMethodMap()方法, 将ResKey和MethodName对应起来 
DispatchAction 类使用请求参数的值确定调用哪种方法,而LookupDispatchAction类利用请求参数值,反向查询资源绑定,并将它与类中的一种方法匹配,这两种方法有异曲同工之妙。

7.MappingDispatchAction 类

该类是 DispatchAction的子类,用于将相关的请求组织到一个Action之中。
MappingDispatchAction的用法:
将一个 MappingDispatchAction 类根据不同的请求进行多次声明,其中path属性因请求的不同而不同,并为每个 action 添加 parameter 属性来指定相同 Action 类处理不同请求的方法名
创建一个扩展 MappingDispatchAction 类的子类,不必覆盖 excute() 方法,而是创建一些实现业务逻辑的方法,这些业务逻辑方法都应该和 excute() 方法具有相同的方法签名,即它们的参数和返回类型都应该相同,此外也应该声明抛出Exception 异常.
与DispatcherAction的区别:
MappingDispatcherAction:当想要为相同的Action定义多个表单操作处理器的时候,使用它
DispatcherAction:如果基于某种理由不想要定义多个表单操作处理器的时候,使用它

转载于:https://www.cnblogs.com/gywbg/archive/2012/04/20/2459338.html

struts1 几种Action父类的比较相关推荐

  1. 1.struts1.x基本action的配置与使用

    <!-- struts1.x的action配置都很简单, 继承自Action的自定义Action配置如下, 当要进生输入校验时必设置validate为true, input 指定验证出错后要返回 ...

  2. structs实现三种action的方法

    第一种:一般类,带有public String execute()方法. 另外一种:继承LoginActionInterface implements Action接口的类. 第三种:继承LoginA ...

  3. 【struts2】struts2中的Action详解

    在传统的MVC框架(如struts1.Spring等)中,Action都需要实现特定的接口,这些接口都是MVC框架定义的,实现MVC的接口会与MVC框架耦合.struts2的Action要灵活得多,可 ...

  4. Struts2和Struts1.x的全面比较

    Struts2和Struts1.x的全面比较 为了对Struts2和Strtus1.x进行全面的比较,让读者了解这两种框架各自的优缺点,以便于在自己的项目中,根据实际情况,选择合适的框架,对它们两者进 ...

  5. Struts2与Struts1的区别

    Struts2是基于WebWork的一个全新框架. 不过有了Struts1的基础,学Struts2更方便. Struts2主要改进是取代了Struts1的Servlet和Action. Struts2 ...

  6. Struts2 Action与Servlet API耦合

    单元测试在开发中是非常重要的一个环节 程序员在写完代码时,相应的单元测试也应写完整,否则你的代码就是不能让人信服的 Struts2将Action与Servlet的API进行解耦之后,就使得单元测试变得 ...

  7. struts一个action处理多个方法

    2019独角兽企业重金招聘Python工程师标准>>> 在前面的介绍中,我们了解了struts的action是实现execute()方法来完成业务逻辑的,可是,在实际开发中,让一个业 ...

  8. 理解ASP.NET MVC Framework Action Filters(翻的)

    原文地址:Understanding Action Filters 本指南主要解释action filters,action filter作为一个可以应用到controller action(或者是整 ...

  9. JSP中两种include的区别

    jsp中有两种include,一种是<%@include file="xxx.jsp"%>,另一种是<jsp:include page="xxx.jsp ...

最新文章

  1. 动态规划——洛谷_P1057传球游戏
  2. 计算机视觉中本质矩阵的概念,【计算机视觉】Lecture 19:本质矩阵和基础矩阵...
  3. 设置UTL_FILE_DIR参数 使得数据库使用OS文件
  4. HDU 5988 最小费用流
  5. ROS知识 【6】Ubuntu20.04下安装ROS-noetic
  6. hexo部署云服务器的全过程
  7. java map 允许重复_java中key值可以重复的map:IdentityHashMap
  8. Pandas.plot 做图
  9. @程序员,Web 开源神器了解一下? | 程序员硬核评测
  10. 几点忠告送给在科研道路艰难跋涉的自己
  11. 数字电子技术基础(四):门电路(二极管)
  12. PLC接入工业互联网解决方案
  13. centos7 RAID磁盘阵列卡驱动安装图文教程
  14. linux常用操作命令总结
  15. 百度网盘怎么取消自动续费
  16. 图片转world文档 Excel excel 新
  17. [网站建设] 深度解析搜索引擎的原理结构
  18. app每月签到功能简单实现
  19. 在PHP中全面阻止SQL注入式攻击之三
  20. UIPATH 发送SMTP电子邮件

热门文章

  1. 我国有线电视信源编码现有体制和对高清的制约
  2. APAX-5017PG 项目开发全程记录 - 筹备篇
  3. linux的ulimit各种限制之深入分析
  4. [译] 学习 JavaScript:9 个常见错误阻碍你进步
  5. ava RMI 框架(远程方法调用)
  6. juniper防火墙做ipsec ***必须开放的端口
  7. 为什么ORM性能比iBATIS好?
  8. 生活中的算法---公交换乘
  9. spring中使用动态代理(AOP)
  10. 用户态/内核态、用户栈/内核栈