版权声明: https://blog.csdn.net/qq_34866380/article/details/79721168
简单的struts.xml文件内容如下,这是struts2的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="test" namespace="/test" extends="struts-default">
<action name="Test" >
<result>/test.jsp</result>
</action>
<action name="login" class="com.test.loginAction">
<result name="success">/login.jsp</result>
<result name="fail">/index.jsp</result>
</action>
</package>
</struts>
< package>< /package>:
name属性可以起任意内容,但一般与namespace有对应关系;
namespace属性必须以 “/”开头(代表当前应用根目录);
extends一般继承abstract=”true”的package,这里的struts-default定义在struts-default.xml配置里;
当package中没有action时且需要被继承时可以用abstract=”true”(也可不写,写了就不能加action)
< action>< /action>:
name属性就是定义的action名;
class属性需要填写相关action类的全限定性类名(如果不写class则是com.opensymphony.xwork2.ActionSupport);
method属性中可自定义action执行方法(默认是execute)
< result>< /result>:
name属性为action方法执行后的返回值(默认不写为success);
type属性为result的后续行为(dispatcher(默认),redirect,redirectAction,chain)
redirect两种写法:
<!-- <result type="redirect">/login.jsp?user=${user}&password=${password}</result> -->
<result type="redirect">
<param name="Location">/login.jsp</param>
<param name="user">${user}</param>
<param name="password">${password}</param>
</result>
redirectAction:
<action name="action_1" class="com.sblov.action_1">
<result type="redirectAction">
<param name="actionName">action_2</param>
<param name="user">${user}</param>
<param name="password">${password}</param>
</result>
</action>
<action name="action_2" class="com.sblov.action_2">
<result>/login.jsp</result>
</action>
chain:
<action name="action_1" class="com.sblov.action_1">
<result type="chain">action_2</result>
</action>
<action name="action_2" class="com.sblov.action_2">
<result>/login.jsp</result>
</action>
package下的global-results(包范围全局视图):可以减少多个action访问相同页面的冗余代码
<global-results>
<result name="a">/a.jsp</result>
<result name="b">/b.jsp</result>
</global-results>
<action name="action_1" class="com.sblov.action_1">
<result >/success.jsp</result>
<!-- <result name="a">/a.jsp</result> -->
<!-- <result name="b">/b.jsp</result> -->
</action>
<action name="action_2" class="com.sblov.action_2">
<result>/login.jsp</result>
<!-- <result name="a">/a.jsp</result> -->
<!-- <result name="b">/b.jsp</result> -->
</action>
应用范围全局视图:将global-results单独放于一个package,其他包可继承此包
指定多个配置文件:< struts>< /struts>下用include
<include file="struts-1.xml" />
<include file="struts-2.xml" />
<include file="struts-*.xml" /><!-- 可用正则表达式匹配,但不能包含本文件 -->