<?xml version="1.0" encoding="GBK"?> <!-- 下面指定Struts 2配置文件的DTD信息 --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <!-- struts是Struts 2配置文件的根元素 --> <struts> <!-- 下面元素可以出现0次,也可以无限多次 --> <constant name="" value="" /> <!-- 下面元素可以出现0次,也可以无限多次 --> <bean type="" name="" class="" scope="" static="" optional="" /> <!-- 下面元素可以出现0次,也可以无限多次 --> <include file="" /> <!-- package元素是Struts配置文件的核心,该元素可以出现0次,或者无限多次 --> <package name="必填的包名" extends="" namespace="" abstract="" externalReferenceResolver> <!-- 该元素可以出现,也可以不出现,最多出现一次 --> <result-types> <!-- 该元素必须出现,可以出现无限多次--> <result-type name="" class="" default="true|false"> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </result-type> </result-types> <!-- 该元素可以出现,也可以不出现,最多出现一次 --> <interceptors> <!-- 该元素的interceptor元素和interceptor-stack至少出现其中之一,也可以二者都出现 --> <!-- 下面元素可以出现0次,也可以无限多次 --> <interceptor name="" class=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </interceptor> <!-- 下面元素可以出现0次,也可以无限多次 --> <interceptor-stack name=""> <!-- 该元素必须出现,可以出现无限多次--> <interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </interceptor-ref> </interceptor-stack> </interceptors> <!-- 下面元素可以出现0次,也可以无限多次 --> <default-interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param> </default-interceptor-ref> <!-- 下面元素可以出现0次,也可以无限多次 --> <default-action-ref name=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </default-action-ref>? <!-- 下面元素可以出现0次,也可以无限多次 --> <global-results> <!-- 该元素必须出现,可以出现无限多次--> <result name="" type=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </result> </global-results> <!-- 下面元素可以出现0次,也可以无限多次 --> <global-exception-mappings> <!-- 该元素必须出现,可以出现无限多次,异常处理资源--> exception-mapping name="" exception="" result=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </exception-mapping> </global-exception-mappings> <action name="" class="" method="" converter=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* <!-- 下面元素可以出现0次,也可以无限多次 ,映射资源--> <result name="" type=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </result> <!-- 下面元素可以出现0次,也可以无限多次 --> <interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </interceptor-ref> <!-- 下面元素可以出现0次,也可以无限多次,异常处理资源 --> <exception-mapping name="" exception="" result=""> <!-- 下面元素可以出现0次,也可以无限多次 --> <param name="参数名">参数值</param>* </exception-mapping> </action> </package>* <struts>
上面的struts.xml配置文件是一个非常全面的配置文件,包含了Struts 2的全部配置元素。
另外注意一下package标签
<package … />标签是用来把那些需要共享的通用信息——例如拦截器堆栈或URL命名空间——的配置组织在一起的。它通常由Action的配置组成,但也可以包括任何类型的配置信息。它还可以用来组织管理各自独立的功能——它们也可以被进一步拆分到不同的配置文件中。
这个标签的属性包括有:
—name ——开发人员为这个Package指定的唯一的名字。
—extends —— 当前这个Package所继承的Package的名字,被继承的Package中所有的配置信息(包括Action的配置)都可以在新的命名空间下,新的Package里面被使用。
—namespace ——命名空间提供了从URL到Package的映射。也就是说,如果两个不同的Package,其命名空间分别为“package1”和“package2”,那么URL差不多就是
“/myWebApp/package1/my.action” 和“/myWebApp/package2/my.action”这样的形式
—abstract ——如果这个属性的值为“true”,那么这个Package就只是一个配置信息的组合,也就无法通过Package的名字来访问其中配置的Action。