struts.xml常用标签详解

struts.xml是Struts 2的核心配置文件,它主要负责管理应用中的Action映射,以及该Action包含的Result定义等。

下面我们先来看下struts.xml最简化的一个基本配置:



  
     
        参数值
     
  
 

附注:struts2加载配置文件的顺序:

struts-default.xml(struts2-core-2.x.x.x.jar中) -> struts-plugin.xml(各插件中) -> struts.xml(自定义)

注意:如果在多个配置中配置同一信息,则后一个配置中的配置会覆盖前面的配置。


下面对struts.xml文件中常用的元素标签进行简要的介绍:

 标签

      该标签是struts.xml文件的根标签,它包含以下子元素:。如下详解:


 一、 标签


          该标签使用包机制来解决同名action的兼容问题,该标签支持多继承,例如相当于将下的所有的配置信息都进行了继承,这可以大大减少代码量,所以通常该标签都会继承自struts-default.xml中的struts-default包,加载系统默认的配置信息。它包含以下子元素: 

 标签属性

是否必需 功能描述
name 包名,作为其它包应用本包的标记
extends 设置本包继承其它包,必须继承struts-defalut.xml包
namespace 设置包的命名空间,更重要的是解决Action重名问题
abstact 设置为抽象包

 附注:namespace属性详解:

 (1)默认命名空间:
  
     
        /success.jsp
     
   

 该包未指定命名空间,则采用默认的命名空间""(相当于namespace="").
 则此配置下的Action的URL为http://localhost:8080/projectName/login.action
 如果在指定路径下搜索不到action资源,就会到默认命名空间下搜索,效果同根命名空间。
 eg:我们访问:http://localhost:8080/projectName/test/login.action,在/test的命名空间中搜索不到login的action资源,就会直接到默认命名空间中搜索。

(2)自定义命名空间:
   
     
       /success.jsp
     
  

 则此配置下的Action的URL为http://localhost:8080/projectName/user/login.action

(3)根命名空间:
  
     
       /success.jsp
     
  

  该包的命名空间为根命名空间,此时所有根路径下的Action请求都会去这个包中查找对应的资源信息。
  则此配置下所有http://localhost:8080/projectName/*.action都会到设置为根命名空间的包中寻找资源。

说明:namespace的搜索顺序:

自定义命名空间 -> 根命名空间 -> 默认命名空间


1.  标签


      该标签用于配置action映射,以确定如何处理客户端请求。它包含以下的子元素:

标签属性 是否必须 功能描述 默认值
name 请求的Action名称  
class Action处理类对应具体路径 ActionSupport
method 指定Action中的方法名 execute
converter 指定Action使用的类型转换器  

附注:通配符的使用:

*表示通用的内容,{0}表示所有通配符*所表示的内容,{i}表示第i个通配符*所表示的内容。示例如下:

public class TestAction {
   public String test1(){
       return "result1";
   }
   public String test2(){
       return "result2";
   }
   public String test3(){
      return "result3";
   }
}

struts.xml中配置为:


  
    /result{1}.jsp
  

我们访问:http://localhost:8080/projectName/test1.action 跳转到result1.jsp
                    http://localhost:8080/projectName/test2.action 跳转到result2.jsp
                    http://localhost:8080/projectName/test3.action 跳转到result3.jsp


1.1   标签


        该标签用于设置结果视图。

标签属性 是否必须 功能描述 默认值
name 对应Action返回逻辑视图名称 success         
type 返回结果类型 dispatcher

附注:type属性的几个主要值:

(1)redirect:重定位到URL
/index.jsp?username=${username}
(2)redirectAction:重定向Action
   //重定向某个命名空间下的action
    xxx   
    /test
 
(3)plainText:用于显示实际视图资源的代码
 
  /index.jsp  //该参数指定了该逻辑视图对应的实际资源
  UTF-8     //该参数指定了采用的编码方案
 


2. 标签


     通过该标签可以向Struts2框架中注册拦截器或者拦截器栈,一般多用于自定义拦截器或拦截器栈的注册

<1-- 同一包内最多只能出现一次 --> 

   
   
     
   


3.  标签


      该标签用来设置整个包范围内所有Action所要应用的默认拦截器信息,即该拦截器作用于该包的所有action。





注意:当为某个Action单独添加拦截器功能后,中所指定的拦截器将不再对这个Action起作用.


3.1  标签


     通过该标签可以为其所在的Action添加拦截器功能。

 


4.  标签


      该标签用来标识包范围内的全局结果集,即用于共享结果集。示例如下:

(1)同一包内共享结果集:
 
     
    
    
       /error.jsp
       noSession">/login.jsp
        

       
         
         /index.jsp
         /loginError.jsp
       

   
     

     
       
         /unKnownAction.jsp  
       

     
    
    
    
    
       /index.jsp
    


测试访问:http://localhost:8080/projectName/user/login.action

测试结果:跳转到了index.jsp视图。


7. 标签


     该标签用于配置全局(包范围)的异常视图映射。它只有一个子元素:,通常需要两个搭配使用。


7.1 标签


      该标签用于配置action范围的异常视图映射。

 
        
        
              
              
               
        
        
        
           /unKnown.jso
        
        
        
           /sqlException.jso
        
 


8. 标签


      该标签用于定义结果类型所对应的实现方式。以下是struts-default默认配置的结果类型:


       
       
       
       
       
       
       
       
       
       

二、标签


        该标签用来配置常量。



 
 
















 


 


 


 


 


 

  
 

附注: struts2加载常量的搜索顺序:

struts-default.xml --> struts-plugin.xml --> struts.xml --> struts.properties --> web.xml
注意:如果在多个配置中定义了同一常量,则后一个配置中的常量值会覆盖前面配置的常量值。


三、标签


       该标签主要用来将一个struts.xml配置文件分割成多个配置文件,方便阅读和管理。




  
  


四、标签


 


你可能感兴趣的:(Struts2)