Struts2的配置文件----包配置

来源:互联网 发布:nginx php fpm 优化 编辑:程序博客网 时间:2024/06/11 03:39

1. 包配置

Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。

在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有:

l name:必填,用来指定包的名字,必须以"/"开头,这时JSP中的action必须手动写上".action"

l extends:可选,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。

l namespace:可选,用来指定该包的命名空间。

 <struts>

  <!-- struts2的action必须放在一个指定的包空间下定义 -->

  <package name="default" extends="struts-default">

       <!-- 定义处理请求URL为login.action的Action -->

     <action name="login" class="org.qiujy.web.struts.action.LoginAction">

          <!-- 定义处理结果字符串和资源之间的映射关系 -->

          <result name="success">/success.jsp</result>

         <result name="error">/error.jsp</result>

     </action>

  </package>

</struts>

2.命名空间配置

Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。

Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。

<package name="struts2" extends="struts-default">

<package name="my" extends="struts-default" namespace="/manage">

如上配置了两个包:struts2和my,配置my包时指定了该包的命名空间为/manage。

对于包struts2:没有指定namespace属性。如果某个包没有指定namespace属性,即该包使用默认的命名空间,默认的命名空间总是""。

对于包my:指定了命名空间/manage,则该包下所有的Action处理的URL应该是“命名空间/Action名”。

struts2先在指定的路径下找action,如果找不到则会去默认的路径找action

3.包含配置

在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件(注,所有的.xml文件也要包含DTD等的声明)。

<struts>

<include file="struts-default.xml"/>

<include file="struts-user.xml"/>

<include file="struts-book.xml"/>

......

</struts>

 

 

4.extends配置

   通常每个包都应该继承struts-default包,因为struts2很多核心功能都是拦截来实现的,如,从请求中把请求参数封闭到action,文件上传和数据验证等都是通过拦截器实现的,struts-default定义了这些拦截器和Result类型,可以这么说,当包继承了struts-default才能使用struts2提供的核心功能,struts-default包是在struts2-core-2.xx.jar文件中的struts-defalut.xml中定义,struts-default.xml也是struts2默认配置文件,struts2每次都会自动加载struts-default.xml文件.

 

原创粉丝点击