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 ...
随机推荐
- 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件载入.例如对于img这个Tag, ...
- python学习day3
目录: 1.集合set 2.计数器 3.有序字典 4.默认字典 5.可命名元组 6.队列 7.深浅拷贝 8.函数 9.lambda表达式 10.内置函数 一.集合set set是一个无序且不重复的元素 ...
- Centos7网络配置+图形界面设置
一. 查看网络地址: centos7取消了ifconfig命令,使用ip addr命令查看IP地址 二.配置网络 用VirtualBox安装的CentOS7,安装完成后,发现无法上网,于是到网上查了一 ...
- index seek与index scan
原文地址:http://blog.csdn.net/pumaadamsjack/article/details/6597357 低效Index Scan(索引扫描):就全扫描索引(包括根页,中间页和叶 ...
- hdu 1150 Machine Schedule hdu 1151 Air Raid 匈牙利模版
//两道大水……哦不 两道结论题 结论:二部图的最小覆盖数=二部图的最大匹配数 有向图的最小覆盖数=节点数-二部图的最大匹配数 //hdu 1150 #include<cstdio> #i ...
- web站点监控脚本web_status_code,tomcat 80,oracle1521
1,完整的监控脚本如下 #!/bin/bash #web_status_code=`curl -o /dev/null -s -w "http_code:%{http_code}" ...
- OC基础11:基本的C语言特性2
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 19.定义一个int类型的指针: int ...
- ADO.NET改进版
ADO.NET从概念上来说是指定义一种与数据源进行交互的面向对象类库.类库即类的集合,也就是说ADO.NET主要是提供一了一些实现与数据源进行交互的一些类和接口. 其实就我个人看来,我觉得ADO.NE ...
- 深信服笔试题(网络project师售后)
总共同拥有3到大题, 1选择 主要有ip地址计算.http协议.vrrp协议. 2.主要是linux填空题 a.linux显示全部系统载入模块____ b.写出linux的两个开机启动程序___.__ ...
- 用CSS做圆角矩形
第一种方法:如果是CSS2.2的话,可以简单写一个制作圆角矩形,分上中下裁成三张图 <title>CSS3实现圆角</title> <style type="t ...