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

除了基本的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. hdoj分类

    http://blog.csdn.net/lyy289065406/article/details/6642573 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 ...

  2. iOS正则表达式的使用

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  3. 由EmbeddedFileProvider构建的内嵌(资源)文件系统

    由EmbeddedFileProvider构建的内嵌(资源)文件系统 一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取 ...

  4. 【LeetCode练习题】Gas Station

    Gas Station There are N gas stations along a circular route, where the amount of gas at station i is ...

  5. Android中绘制圆角矩形图片及任意形状图片

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角 ...

  6. Android 查看通讯录Contacts是否发生变化

    目的:确定通讯录是否发生变化 根据:參见ContactsContract.RawContacts类中的VERSION常量,该值是仅仅读的,当通讯录发生变化时,都会使该值变化 方法:version值是相 ...

  7. CSS学习笔记(1):选择器

    一.元素选择器 HTML文档元素就是最基本的选择器 如: <!DOCTYPE html> <html lang="en"> <head> < ...

  8. Android EditText小结

    防止EditText获取焦点弹出输入法 android:focusable="true" android:focusableInTouchMode="true" ...

  9. 读书笔记-Coding faster(英文版)

    读书笔记-Coding faster(英文版) Getting More Productive with Microsoft visual Studio Author: Zain Naboulsi S ...

  10. 在ASP.NET MVC自定义错误页面

    异常处理跳转页面 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置(Error为定义的控制器也可以多添加些error标签用于区分不同的错误) ...