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

除了基本的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. js跑马灯效果

    function nextPage() {           /*         克隆第一张图片并添加到box后         box前移一张图片的距离动画         动画回调里把box的 ...

  2. 100个linux常用命令

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  3. rails跑通第一个demo

    rails -h 查看帮助 Usage: rails new APP_PATH [options] Options: -r, [--ruby=PATH] # Path to the Ruby bina ...

  4. 学习笔记之--MySQL图形界面软件Navicat Premium的安装

    最近因项目开发需要,搁置已久的MySQL再次用到.由于以前都是使用命令行进行操作的,没有图形界面.经同学介绍,安装了一个MySQL的图形界面软件.各种数据库的操作也变得直观方便了很多.现在记录下来,一 ...

  5. 关于URL编码的问题

    在进行WEB开发时,字符集编码常常困扰着我们.我们需要区分两种情况,一是URL编码,二是HTTP Body编码.这两种编码所处理的机制不同. URL编码和解码 客户端负责对URL编码,服务端负责解码. ...

  6. Wikioi 1294 全排列

    先给出链接地址:Wikioi 1294 虽然题目很短,论难度也就是个深搜,算法方面我就不多说了,而且我知道c++有个函数叫next_permutation,谁用谁知道. 代码如下: #include& ...

  7. 《Java解惑》书摘

    例子1:关于char数组的输出 System.out.println("H" + "a");//输出:Ha System.out.println('H' + ' ...

  8. MySQL的零碎知识点

    让Windows下的MySQL表名大小写敏感: 在mysql查询中执行:SHOW VARIABLES LIKE 'lower_case_table_names'; 值的含义--->0:大小写敏感 ...

  9. N1必备外来语

    201412: キャリア: ノルマ:(normal)定额,劳动基本定额. チーフ: コスト: バンド:[英] band;皮带,腰带:吹奏乐团,轻音乐乐团(演奏者の一団.楽団.楽隊):营居群 [2014 ...

  10. 从U盘安装win8系统

    http://blog.csdn.net/pipisorry/article/details/40662397 lz提示,下面也能够用于win7.linux等操作系统的安装 一.下载windows安装 ...