Struts2创建系统的Action代理时,需要使用Struts2的配置文件。Struts2的配置文件有两份
配置Action的struts.xml文件
配置Struts2全局属性的struts.properties文件。
struts.xml文件内定义了Struts2的系列Action,定义Action时,指定该Action的实现类,并定义该Action处理结果与视图资源之间的映射关系。
下面是struts.xml配置文件的示例:
<struts>
<!--Struts 2 的Action都必须配置在package里-->
<packege name="default" extends="struts-default">
<span style="white-space:pre"> </span><action name="login" class="org.dll.action.LoginAction">
<span style="white-space:pre"> </span><!--配置Action返回input时转入/content/login.jsp页面-->
<span style="white-space:pre"> </span><result name="input">/content/login.jsp</result>
<span style="white-space:pre"> </span><!--配置Action返回cancel时重定向到名为welcome的Action-->
<span style="white-space:pre"> </span><result name="cancel" type="redirectAction">welcome</result>
<span style="white-space:pre"> </span><!--配置Action返回success时重定向名为mainMenu的Action-->
<span style="white-space:pre"> </span><result type="redirectAction">mainMenu</result>
<span style="white-space:pre"> </span><!--配置Action返回expired时转发到名为changePassword的Action-->
<span style="white-space:pre"> </span><result name="expired" type="chain">changePassword</result>
<span style="white-space:pre"> </span></action>
<span style="white-space:pre"> </span><!--定义logoff的Action,实现类为org.dll.action.LogoffAction-->
<span style="white-space:pre"> </span><action name="logoff" class="org.dll.action.LogoffAction">
<span style="white-space:pre"> </span><!--配置Action返回success时重定向到名为welcomg的Action-->
<span style="white-space:pre"> </span><result type="redirectAction">welcome</resule>
<span style="white-space:pre"> </span></action>
</package>
</struts>
在上面的struts.xml文件中,定义了两个Action。定义Action时,不仅定义了Action的实现类,而且定义Action的处理结果时,指定了多个<result.../>,<result.../>元素指定execute方法返回值和视图资源之间的映射关系,对于如下配置片段:
<result name="cancel" type="redirectAction">welcome</result>
表示当execute方法返回cancel字符串是,重定向到welcome的Action。定义result元素时,可以指定两个属性:type和name.其中name指定了execute方法返回的字符串,而type指定了转向的资源类型,此处专项的资源可以是JSP,也可以是FreeMarker等,甚至是另一个Action.
除此之外,Struts2还有一个配置Struts2全局属性的Properties文件:struts.properties.该文件的示例如下:
#指定Struts2处于开发状态
struts.devMode = false
#指定当Struts2配置文件改变后,Wb框架是否重新加载Struts2配置文件
struts.configuration.xml.reload=true