structs常用的Action
今天座右铭-----谦虚使人进步,骄傲使人落后。
除了基本的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的更多相关文章
- Android开发之常用Intent.Action【转】
1.从google搜索内容 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putEx ...
- Intent的常用属性action和category
设置隐式跳转 首先在我们按钮监听器中添加 Intent i=new Intent(); //参数为字符串,可以添加包名.活动名 i.setAction("com.example.aaaaa. ...
- 五 Action访问方法,method配置,通配符(常用),动态
1 通过method配置(有点low) 建立前端JSP:demo4.jsp <%@ page language="java" contentType="text/h ...
- Intent属性详解二 Action、Category
先看效果图: 1.Action:该activity可以执行的动作 该标识用来说明这个activity可以执行哪些动作,所以当隐式intent传递过来action时,如果跟这里<intent-fi ...
- CLR环境中内置了几个常用委托(转)
CLR环境中给我们内置了几个常用委托Action. Action<T>.Func<T>.Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个 ...
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
先说一下个人理解的结论吧: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类. delegate声明的变量与delegate声明的事件,并没有本质的区别,事件是在dele ...
- C#委托Action、Action<T>、Func<T>、Predicate<T>
CLR环境中给我们内置了几个常用委托Action. Action<T>.Func<T>.Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个 ...
- Intent的属性及Intent-filter配置——指定Action、Category调用系统Activity
Intent代表了启动某个程序组件的“意图”,实际上Intent对象不仅可以启动本应用内程序组件,也可启动Android系统的其他应用的程序组件,包括系统自带的程序组件——只要权限允许. 实际上And ...
- HTML常用基础标签
HTML常用基础标签 带有语义的标签 <em> </em> 强调 <strong> </strong> 比em强调级别高 <abbr> &l ...
随机推荐
- hdoj分类
http://blog.csdn.net/lyy289065406/article/details/6642573 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 ...
- iOS正则表达式的使用
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 由EmbeddedFileProvider构建的内嵌(资源)文件系统
由EmbeddedFileProvider构建的内嵌(资源)文件系统 一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取 ...
- 【LeetCode练习题】Gas Station
Gas Station There are N gas stations along a circular route, where the amount of gas at station i is ...
- Android中绘制圆角矩形图片及任意形状图片
圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角 ...
- Android 查看通讯录Contacts是否发生变化
目的:确定通讯录是否发生变化 根据:參见ContactsContract.RawContacts类中的VERSION常量,该值是仅仅读的,当通讯录发生变化时,都会使该值变化 方法:version值是相 ...
- CSS学习笔记(1):选择器
一.元素选择器 HTML文档元素就是最基本的选择器 如: <!DOCTYPE html> <html lang="en"> <head> < ...
- Android EditText小结
防止EditText获取焦点弹出输入法 android:focusable="true" android:focusableInTouchMode="true" ...
- 读书笔记-Coding faster(英文版)
读书笔记-Coding faster(英文版) Getting More Productive with Microsoft visual Studio Author: Zain Naboulsi S ...
- 在ASP.NET MVC自定义错误页面
异常处理跳转页面 第一步,在项目的Web.config文件中找到节点<system.web> 在此节点下添加配置(Error为定义的控制器也可以多添加些error标签用于区分不同的错误) ...