struts.xml action-mapping 元素讲解

来源:互联网 发布:adobe for mac 编辑:程序博客网 时间:2024/05/01 10:14

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


<action-mapping>元素:包含一个或者N个<action>元素,描述了从特定的请求路径到响应的Action的映射。在<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属性只能选中其中一项。
0 0