版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mChenys/article/details/84861781
结果页面的跳转是配置在struts.xml文件中的,配置后Struts2框架会根据响应类(Action)中的响应方法的返回值去配置文件中找到跳转的页面或者其他处理Action.
两种结果页的声明方式
1.全局结果页面
如果<package>
包中的一些action都返回相同的结果,并且跳转的页面都是同一个JSP页面,这样就可以配置全局的结果页面。
全局结果页面针对的当前的包中的所有的Action,但是如果局部还有结果页面,会优先局部的。
使用的标签是<global-results>
,例如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<!-- 全局跳转结果页配置 -->
<global-results >
<result name="success">/suc.jsp</result>
<result name="error">/error.jsp</result>
</global-results>
<action name="demo1" class="blog.csdn.net.mchenys.Demo1Action" >
<!-- <result name="success">/suc.jsp</result> -->
</action>
<action name="demo2" class="blog.csdn.net.mchenys.Demo2Action" >
<!-- <result name="success">/suc.jsp</result> -->
</action>
</package>
</struts>
2.局部结果页面
局部结果页是单独配置在Action
标签中你的,使用的是<result>
标签,前面的文章也介绍过改标签有2个属性,name属性对应Action类的响应方法(或者说action标签的method代表的方法)的返回结果,type代表的是页面跳转类型,后面会介绍几个常用的跳转类型。例如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="demo3" class="blog.csdn.net.mchenys.Demo3Action">
<!-- 局部跳转结果页配置 -->
<result name="login">/login.jsp</result>
<result name="save_ok">/list.jsp</result>
</action>
</package>
</struts>
结果页面的类型
通过<result>标签
的type属性配置,常见的结果类型可以去struts-default.xml中查找,例如:
这里介绍几个常用的类型:
- dispatcher:转发,type的默认值, 只能用于Action—>JSP的转发跳转。
- redirect:重定向,只能用于Action—>JSP的重定向跳转。
- chain:多个action之间转发跳转,从一个Action转发到另一个Action, Action—>Action。
- redirectAction:多个action之间重定向的跳转,从一个Action重定向到另一个Action,Action—>Action。
- stream:文件下载时候使用的。