今天座右铭-----谦虚使人进步,骄傲使人落后。

除了基本的Action之外,structs还提供几个其他的类型Action,下面就简单的说一下:

1、DispatchAction:能同时完成多个Action功能的Action。

他是仅次于Action,使用最频繁的Action。如在同个表单中有两个提交按钮时,需要的逻辑处理完全不同,一般的解决方法是为每个按钮增加Javascript脚本,提交两个按钮时分别提交给不同的Action处理,这是最容易想到,也是最麻烦的方式,用Structs提供的DispatchAction,可以支持多个逻辑处理。问题:Structs如何区别不同表单提交与方法之间的对应关系?因为但使用DispatchAction要求表单提交时,会额外多传递一个参数(parameter=“method”),在structs-config.xml中指定,该参数用于区别到底调用Action中的哪个方法,例如:method参数值为add,将调用add方法,如果method为modify,则将调用modify方法。

2、MappingDispatchAction:DispatchAction的子类,一个action可以映射出多个Action地址。

这种Action的写法与DispatchAction非常相似,同样不需要重写execute方法,而是将书写多个自定义的方法,这些方法除了方法名与execute方法不同外,其他的参数类表及异常处理完全一样。

3、LookupDispatchAction:DispatchAction的子类,根据按钮的key,控制转发给action的方法。

它的处理更加简单。该Action也可以包含多个处理方法,它可处理方法与按钮直接关联,无需使用任何Javascript脚本。注意:使用LookupDispatchAction时,提交按钮必须使用structs的html标签,同样action也根据method参数来区分请求分别调用那个方法,此时,必须重写getKeyMethodMap方法,该方法返回一个Map,并在该对象内保存按钮标题与方法之间对应。

4、ForwardAction:该类用来整合structS和其他业务逻辑组件,通常只对请求做有效才行检查。

需要从一个页面或资源时,直接使用页面或资源路径的超级链接定位并不是好的做法,这使得控制器没有机会处理相关的请求事宜,使用ForwardAction可以完成请求的转发,当控制器调用ForwardAction的perform()方法时,它会使用属性parameter所设定的路径进行forward的动作。

5、IncludeAction:用于引入其他资源或页面

IncludeAction的用法与ForwardAction的用法比较相似,区别在于ForwardAction将跳转到action定义的资源,而IncludeAction用于引入该action对应的资源。

6、SwitchAction:主要用于模块之间的切换。

当一个应用之中存在多个模块时,使用SwitchAction在不同模块的Action之间切换还是相当方便的。使用SwitchAction时,必须在请求中带两个参数,①prefix:用来指定模块名称,②page:指定模块中的资源路径。

Action主要就是以上六种。

structs常用的Action的更多相关文章

  1. Android开发之常用Intent.Action【转】

    1.从google搜索内容 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putEx ...

  2. Intent的常用属性action和category

    设置隐式跳转 首先在我们按钮监听器中添加 Intent i=new Intent(); //参数为字符串,可以添加包名.活动名 i.setAction("com.example.aaaaa. ...

  3. 五 Action访问方法,method配置,通配符(常用),动态

    1 通过method配置(有点low) 建立前端JSP:demo4.jsp <%@ page language="java" contentType="text/h ...

  4. Intent属性详解二 Action、Category

    先看效果图: 1.Action:该activity可以执行的动作 该标识用来说明这个activity可以执行哪些动作,所以当隐式intent传递过来action时,如果跟这里<intent-fi ...

  5. CLR环境中内置了几个常用委托(转)

    CLR环境中给我们内置了几个常用委托Action. Action<T>.Func<T>.Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个 ...

  6. 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系

    先说一下个人理解的结论吧: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类. delegate声明的变量与delegate声明的事件,并没有本质的区别,事件是在dele ...

  7. C#委托Action、Action<T>、Func<T>、Predicate<T>

    CLR环境中给我们内置了几个常用委托Action. Action<T>.Func<T>.Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个 ...

  8. Intent的属性及Intent-filter配置——指定Action、Category调用系统Activity

    Intent代表了启动某个程序组件的“意图”,实际上Intent对象不仅可以启动本应用内程序组件,也可启动Android系统的其他应用的程序组件,包括系统自带的程序组件——只要权限允许. 实际上And ...

  9. HTML常用基础标签

    HTML常用基础标签 带有语义的标签 <em> </em> 强调 <strong> </strong> 比em强调级别高 <abbr> &l ...

随机推荐

  1. 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!

    所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件载入.例如对于img这个Tag, ...

  2. python学习day3

    目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...

  3. Centos7网络配置+图形界面设置

    一. 查看网络地址: centos7取消了ifconfig命令,使用ip addr命令查看IP地址 二.配置网络 用VirtualBox安装的CentOS7,安装完成后,发现无法上网,于是到网上查了一 ...

  4. index seek与index scan

    原文地址:http://blog.csdn.net/pumaadamsjack/article/details/6597357 低效Index Scan(索引扫描):就全扫描索引(包括根页,中间页和叶 ...

  5. hdu 1150 Machine Schedule hdu 1151 Air Raid 匈牙利模版

    //两道大水……哦不 两道结论题 结论:二部图的最小覆盖数=二部图的最大匹配数 有向图的最小覆盖数=节点数-二部图的最大匹配数 //hdu 1150 #include<cstdio> #i ...

  6. web站点监控脚本web_status_code,tomcat 80,oracle1521

    1,完整的监控脚本如下 #!/bin/bash #web_status_code=`curl -o /dev/null -s -w "http_code:%{http_code}" ...

  7. OC基础11:基本的C语言特性2

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 19.定义一个int类型的指针: int ...

  8. ADO.NET改进版

    ADO.NET从概念上来说是指定义一种与数据源进行交互的面向对象类库.类库即类的集合,也就是说ADO.NET主要是提供一了一些实现与数据源进行交互的一些类和接口. 其实就我个人看来,我觉得ADO.NE ...

  9. 深信服笔试题(网络project师售后)

    总共同拥有3到大题, 1选择 主要有ip地址计算.http协议.vrrp协议. 2.主要是linux填空题 a.linux显示全部系统载入模块____ b.写出linux的两个开机启动程序___.__ ...

  10. 用CSS做圆角矩形

    第一种方法:如果是CSS2.2的话,可以简单写一个制作圆角矩形,分上中下裁成三张图 <title>CSS3实现圆角</title> <style type="t ...