例子:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1">
<result type="dispatcher">/r1.jsp</result><!-- 默认,转发,地址栏不变,请求一次服务器,只能是到视图 -->
</action>
<action name="r2">
<result type="redirect">/r2.jsp</result><!-- 重定向,地址栏变,请求两次次服务器,只能是到视图 -->
</action>
<action name="r3">
<result type="chain">r1</result><!-- 转发,访问本namespace的Action -->
</action>
<action name="r4">
<result type="redirectAction">r2</result><!-- 访问本namespaceAction -->
</action>
</package>
</struts>
访问其他namespace:
<
package
name
=
"public"
extends
=
"struts-default"
>
<!-- Chain creatAccount to login, using the default parameter -->
<
action
name
=
"createAccount"
class
=
"..."
>
<
result
type
=
"chain"
>login</
result
>
</
action
>
<
action
name
=
"login"
class
=
"..."
>
<!-- Chain to another namespace -->
<
result
type
=
"chain"
>
<
param
name
=
"actionName"
>dashboard</
param
>
<
param
name
=
"namespace"
>/secure</
param
>
</
result
>
</
action
>
</
package
>
<
package
name
=
"secure"
extends
=
"struts-default"
namespace
=
"/secure"
>
<
action
name
=
"dashboard"
class
=
"..."
>
<
result
>dashboard.jsp</
result
>
</
action
>
</
package
>
global-results可以让同一个namespace和继承该namespace的namespace共享其result的name,
和extends(继承)一起,常用来定义大家都用的results。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>
<action name="index">
<result>/index.jsp</result>
</action>
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>/user_success.jsp</result>
<result name="error">/user_error.jsp</result>
</action>
</package>
<package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
<result>/admin.jsp</result>
</action>
</package>
</struts>
全局异常:
<package name="bbs2009_default" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>
Result类型(type)列举
- dispatcher
- redirect
- chain
- redirectAction
- freemarker
- httpheader
- stream
- velocity
- xslt
- plaintext
- tiles