# Struts 2的配置文件

**URL:** <https://www.isharkfly.com/t/struts-2/6533>\
**Category:** 程序语言\
**Created:** [June 26, 2011, 12:44pm UTC](https://www.isharkfly.com/t/struts-2/6533 "2011-06-26T12:44:30Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [June 26, 2011, 12:44pm UTC](https://www.isharkfly.com/t/struts-2/6533/1 "2011-06-26T12:44:30Z")

</div>

当Struts 2创建系统的Action代理时，需要使用Struts 2的配置文件。

Struts 2的配置文件有两份：

— 配置Action的struts.xml文件。

— 配置Struts 2全局属性的struts.properties文件。

struts.xml文件内定义了Struts 2的系列Action，定义Action时，指定该Action的实现类，并定义该Action处理结果与视图资源之间的映射关系。

下面是struts.xml配置文件的示例：[code]

```
<!-- Struts 2的Action都必须配置在package里 -->

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

	<!-- 定义一个Logon的Action，实现类为lee.Logon -->

	<action name="Logon" class="lee.Logon">

		<!-- 配置Action返回input时转入/pages/Logon.jsp页面 -->

		<result name="input">/pages/Logon.jsp</result>

		<!-- 配置Action返回cancel时重定向到Welcome的Action-->

		<result name="cancel" type="redirect-action">Welcome</result>

		<!-- 配置Action返回success时重定向到MainMenu的Action -->

		<result type="redirect-action">MainMenu</result>

		<!-- 配置Action返回expired时进入ChangePassword的Action链 -->

		<result name="expired" type="chain">ChangePassword</result>

	</action>

	<!-- 定义Logoff的Action，实现类为lee.Logoff -->

	<action name="Logoff" class=" lee.Logoff">

		<!-- 配置Action返回success时重定向到MainMenu的Action -->

		<result type="redirect-action">Welcome</result>

	</action>

</package>

```

[/code]在上面的struts.xml文件中，定义了两个Action。定义Action时，不仅定义了Action的实现类，而且的定义Action的处理结果时，指定了多个result，result元素指定execute方法返回值和视图资源之间的映射关系。对于如下配置片段：`
<result name="cancel" type="redirect-action">Welcome</result>`表示当execute方法返回cancel的字符串时，跳转到Welcome的Action。定义result元素时，可以指定两个属性：type和name。其中name指定了execute方法返回的字符串，而type指定转向的资源类型，此处转向的资源可以是JSP，也可以是FreeMarker等，甚至是另一个Action——这也是Struts 2可以支持多种视图技术的原因。

除此之外，Struts 2还有一个配置Struts 2全局属性的Properties文件：struts.properties。该文件的示例如下：

#指定Struts 2处于开发状态`struts.devMode = false`//指定当Struts 2配置文件改变后，Web框架是否重新加载Struts 2配置文件`struts.configuration.xml.reload=true`正如上面见到的，struts.properties文件的形式是系列的key、value对，它指定了Struts 2应用的全局属性。
