开发者社区> 旭东的博客> 正文

Struts action-mapping 元素讲解

简介: 本文转自:http://zzx0421.iteye.com/blog/284022   元素中可以包含多个和子元素,他们分别配置局部异常处理和局部转发。attribute设置Action关联的ActionForm在request或者session范围内的key,就是在request或者session共享内的名称。
+关注继续查看

本文转自:http://zzx0421.iteye.com/blog/284022

  <action>元素中可以包含多个<exception>和<forward>子元素,他们分别配置局部异常处理和局部转发。attribute设置Action关联的ActionForm在request或者session范围内的key,就是在request或者session共享内的名称。className对应配置元素的类,默认的是ActionMapping.forward指定转发URL路径。include指定包含URL路径input指定包含表单的URL,当表单验证失败的时候发送的URL.name,指定和该Action关联的Form名字。该名字必须是在form-bean中定义过的,parameter指定Action配置参数。在Action的execute()方法中可以调用ActionMapping的getParameter()方法来读取匹配的参数。roles指定允许调用该Action的安全角色,多个角色之间逗号格开。scope指定Form的存在范围,默认是session.tyep指定Action的完整类名。unknown如果是true表示可以处理用户发出的所有的无效的ActionURL,默认是false.validate指定是否调用ActionForm的validate方法。具体配置示例说明如下: 
    描述从特定的请求路径到相应的Action类的映射。它具有以下几个属性: 

  1. attribute:设置和Action关联的ActionForm Bean在request和session范围内的key。如:Form Bean存在于request范围内,此项设为“myBenas”,则在request.getAttribute("myBenas")就可以返回该Bean的实例。 

 2. classsName:和action元素对应的配置元素,默认为:org.apache.struts.action.ActionMapping. 

  3. forward:转发的URL路径。 

  4. include:指定包含的URL路径。 

  5. input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL。 

  6. name:指定和Action关联的Action FormBean的名字,该名字必须在Form-Bean定义过。 

  7. path:指定访问Action的路径,以“/”开头,无扩展名。 

  8. parameter:指定Actgion的配置参数,在Action类的execute()方法中,可以调用ActionMapping对象的getParameter()方法来读取该配置参数。 

  9. roles:指定允许调用该Action的安全角色,多个角色之间用,隔开,在处理请求时,RequestProcessor会根据该配置项来决定用户是否有权限调用Action权限。 
struts-config.xml中,每个action的配置中都有一个role属性,这个属性中填写一个模块的名称,这样就建立起了action与模块的多对一关系; 
扩展struts中的requestProcessor类(注意如果使用tiles框架,需要继承另外一个tiles专用的类),复写其中的processorRole方法(其他方法也很有用,例如preprocess方法,可以设置提交的字符串都为UTF-8,也可以用户写一些系统的访问日志等等),在这个方法中可以取出当前action的模块名称和当前用户的角色,这样就可以实现对于用户的权限限定了。 

  10. scope:指定ActionForm Bean的存在范围,可选取为request和session,默认为session。 

  11. type:指定Action类的完整类名。 

  12. unknown:如果此项为true,表示可以处理用户发出的所有无效的Action URL,默认为false; 

  13. validate:指定是否要调用Action FormBean的validate方法,默认值为ture. 

注:forward、include、type属性只能选中其中一项。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
深入理解 Go map:初始化和访问元素
如果 keys 和 values 都不包含指针并且允许内联的情况下。会将 bucket 标识为不包含指针,使用 extra 存储溢出桶就可以避免 GC 扫描整个 map,节省不必要的开销; 在前面有提到,Go 用了增量扩容。而 buckets 和 oldbuckets 也是与扩容相关的载体,一般情况下只使用 buckets,oldbuckets 是为空的。但如果正在扩容的话,oldbuckets 便不为空,buckets 的大小也会改变; 当 hint 大于 8 时,就会使用 *mapextra 做溢出桶。若小于 8,则存储在 buckets 桶中。
14 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13778 0
struts2访问WEB元素
直接贴代码, 第一种: public class Test1 extends ActionSupport { private Map request; private Map session; private Map application; //虽然说上面定义的...
562 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18083 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24845 0
Python+Appium自动化测试(5)-appium元素定位常用方法(一)
对于Android而言,查找appUI界面元素属性的工具有三种:appium desktop,uiautomatorviewer.bat,weditor。之前已经介绍过了weditor的使用,这里我将通过使用uiautomatorview工具查看元素的属性值,来介绍Android app通过appium进行元素定位常用的几种方法。
6 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19827 0
MyBatis学习笔记】10:#和$,sql元素,resultMap的结构/构造器,存储结果集
MyBatis学习笔记】10:#和$,sql元素,resultMap的结构/构造器,存储结果集 在MyBatis的SQL中使用#{}和${}都会被视为特殊字符串来处理。前者是设置了参数,MyBatis会将参数设置到语句中(默认是PreparedStatement)。
1527 0
+关注
旭东的博客
从事互联网开发工作,写博客,记录问题与学习支持,并分析
194
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载