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

本文深入探讨了Struts2框架中的包配置、命名空间配置、包含配置和extends配置,详细解释了如何在Struts2中管理Action和拦截器等核心组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值