Struts2的核心配置文件时struts.xml,其就有重要的作用。所有的用户请求被Struts2核心控制器StrutsPrepareAndExecuteFilter拦截,然后查询配置文件struts.xml决定由哪一个Action处理。
Struts2框架有两种配置文件格式:struts.xml和struts.properties,一般建议使用struts.xml。
struts.xml配置文件的结构:
<!--
表明解析本XML文件的DTD(Document Type Definition)文档位置,DTD是对文档类型的定义,
XML解析器使用DTD文档来检查XML文件的合法性,不同的Struts版本对应的配置文件中的DTD信息
会有一定的差错,切记适用于版本相对应的DTD信息
-->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- Bean配置 -->
<bean name="Bean的名字" class="自定义的组件类"></bean>
<!-- 常量配置,指定Struts国际化资源文件的名字为messageResource -->
<constant name="struts.custom.il8n.resources" value="messageResource"></constant>
<!-- 导入一个配置文件,通过这种方式可以将Struts2的Action按模块配置到多个配置文件中 -->
<include file="example.xml"/>
<!-- 所有的Action配置都应该放在package下,name定义包名,
extends定义继承包空间struts-default -->
<package name="zzf" extends="struts-default">
<!-- Action配置可以有很多对,name是对业务控制器命名,
在表单中指定的名字需要与该名字一致;class指定Action类的位置 -->
<action name="login" class="loginAction.LoginAction">
<!-- 定义两个逻辑视图和物理资源之间的映射,
name值是Action中返回的结果,即逻辑视图 -->
<result name="error">/login/login.jsp</result>
<result name="success">/login/success.jsp</result>
</action>
</package>
</struts>
Bean配置:
Bean在struts.xml中的配置格式如下:
<bean name="Bean的名字" class="自定义的组件类"></bean>
bean 元素的常用属性如下所示:
(1)、name:指定Bean实例化对象的名字,对于相同类型的多个Bean实例,其对应的name属性值不能相同,该项是可选项。
(2)、class:指定Bean实例实现类,即对应的类,该项是必选项。
(3)、type:指定Bean实例实现的Struts2规范,该规范通常是通过某个接口来体现的,因此该属性的值通常是一个Struts2接口。如果配置Bean作为框架的一个核心组件来使用,就应该指定该属性,该项是可选项。
(4)、scope:指定Bean的作用域,该项是可选项。
(5)、optional:指定该Bean是否是一个可选Bean,该项是可选项。
(6)、static:指定允许不创建Bean实例,而是让Bean接受框架常量,这是该属性设为true。但是当指定了type属性时,该属性不能设为true。