Struts2之结果页面的跳转

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301372/article/details/85009179

结果页面存在两种方式

全局结果页面

  • 条件:如果<package>包中的一些action都返回success,并且返回的页面都是同一个JSP页面,这样就可以配置全局的结果类型
  • 全局结果页面针对的当前的包中的所有的Action,但是如果局部还有结果页面,会优先局部的,使用的标签是:
<global-results>
	<result name="success">/demo3/suc.jsp</result>
</global-results>
  <package name="demo1" extends="struts-default" namespace="/">
        <global-results>
            <result>/demo1/suc.jsp</result>
        </global-results>
        <action name="demo1Action" class="com.zst.demo1.Demo1Action" >
         <!--   <result name="success">/demo1/suc.jsp</result>-->
        </action>
<!--原生的方式-->
        <action name="demo2Action" class="com.zst.demo1.Demo2Action" >
           <!-- <result name="success" >/demo1/suc.jsp</result>-->
        </action>
    </package>

局部结果页面
<result>/demo3/suc.jsp</result>

结果页面的类型

结果页面使用<result>标签进行配置,包含两个属性

  • name------逻辑视图的名称
  • type------跳转的类型,值一些,需要掌握一些常用的类型。常见的结果页面类型去struts-default.xml中查找
    ** dispatcher----转发,type的默认值.Action—>JSP
    ** redirect----重定向,Action---->JSP
    ** chain----多个action之间跳转,从一个Action转发到另一个Action。Action—>Action
    ** redirectAction—过个action之间跳转,从一个Action重定向到另一个Action。Action—> Action
    ** stream----文件下载时候使用的

在这里插入图片描述

<!--转发-->
   <global-results>
            <result name="success" type="dispatcher">/demo1/suc.jsp</result>
   </global-results>
   <!--转发*(一次请求)可以获取request中的值-->
<!--重定向-->
   <global-results>
            <result name="success" type="redirect">/demo1/suc.jsp</result>
   </global-results>
   <!--重定向是两次请求,第二次请求时会创建一个新的request对象-->

重定向到Action

   <!--通配符的方式-->
        <action name="demo3Action_*" class="com.zst.demo1.Demo3Action" method="{1}">
            <!--写重定向的方法名 -->
            <result name="success" type="redirectAction">demo3Action_update</result>
        </action>

从Demo3Action中的save方法重定向到update方法

public class Demo3Action  extends ActionSupport{
    public String save(){
        System.out.println("save,,,");
        return SUCCESS;
    }
    public String update(){
        System.out.println("update,,,");
        return NONE;
    }

}

猜你喜欢

转载自blog.csdn.net/u011301372/article/details/85009179