Struts2之配置元素
次访问
这一篇从Struts2配置元素来讲Struts2.
##
配置就是程序的影子,无论什么框架,框架总是作为一个重要的组成部分,在框架的运行过程中发挥作用。
表现形式
Struts2支持所有的配置形式包括XML和Properties。从形式上来讲,以XML为核心,Properties作为辅助。
作用范围
struts-default.xml和default.properties是框架级别的配置文件。这两个文件蕴含在Struts2的核心包中,应用程序启动时被初始化程序读取并加载。
struts.xml和struts.Properties作用于应用级别,其中定义的所有内容将覆盖框架级别的定义。
struts-plugin.xml则通过插件形式进行应用级别的定义。
配置文件的必要性
应用程序级别的配置文件都不是必须存在的。只有Web.xml中的配置是必须的,因为在其中定义了Struts2的入口程序。
如图:
配置元素的定义
下图是struts-default.xml中截取的一部分:
这只是冰山一角。
接下来将分析其中的含义。
1.include节点
最为常见的使用方法,我们可以在应用级别的配置文件里,将整个应用的配置根据一定的逻辑划分成若干个独立的配置文件,以方便的进行模块化处理。
2.bean节点
从上面的图中也可以看出,这个节点实际上一个用于描述接口及其实现类映射关系的节点。
bean节点的寻址是通过name属性和type属性共同构成一个逻辑主键来共同决定一个class属性。
Struts2在框架级别实现了一个对象容器,并将配置文件中所有的bean节点所定义的对象纳入容器之中进行管理。Struts2通过容器在框架级别负责这些对象的创建、销毁以及依赖关系的处理。
在应用级别配置文件中,通过增加bean节点,就可以把一个对象纳入Struts2的容器中进行管理。
3.constant节点
在配置文件中的存在形式
<constant name="struts.excludedClasses"
value="
java.lang.Object,
java.lang.Runtime,
java.lang.System,
java.lang.Class,
java.lang.ClassLoader,
java.lang.Shutdown,
ognl.OgnlContext,
ognl.MemberAccess,
ognl.ClassResolver,
ognl.TypeConverter,
com.opensymphony.xwork2.ActionContext" />
是一个非常典型的键值对类型的配置,主要用于定义Struts2运行时的参数。
其实与Properties文件配置的作用是完全一样的。
4.package节点
是一个复杂的复合节点,在其中包含了众多子节点:ResultType、Interceptor、Action等。这些子节点全部继承自XWork框架。
一个Package节点实际上可以被看做是一条简单的XWork生产流水线,其中包含XWork框架如何应对某些请求并选择相应的执行序列进行处理的具体方式。
package节点的属性之中,name是唯一的标识符,namespace则从命名的空间的角度为整个事件请求机制划分不同的种类。
extends属性允许继承。
Struts2配置元素的分类
XML配置文件中的bean节点和constant节点,可以归为容器配置元素。
XML配置文件中的package节点定义了一种事件请求响应的映射关系,可以归为映射关系元素。