例如从你的login.action到register.action  有两种实现方式
1. 设置type="redirect"
<package  name="struts" extends="struts-default">  

          <action name="login" class="com.aihua.example.LoginAction">  

              <result name="success" 
type="redirect">register.action </result>  

              <result name="error">/index.jsp  </result>  

          </action> 
      </package> 
2.设置 type="chain"
<package  name="struts" extends="struts-default">  

          <action name="login" class="com.aihua.example.LoginAction">  

              <result name="success" 
type="chain" >action 名称 </result>  

              <result name="error">/index.jsp </result>  

          </action>   

</package>  

当type为chain 时,说明是action链,运行完第一个action java文件接着会运行第二个action JAVA 文件,相当于forward(客户端的url不会改变).当type为redirect时,说明会跳转到第二个action的url (客户端的url会改变)
从action1直接跳转到action2,有两种方法:

1. 需要保存前一个action的属性信息时使用,保存住action1的request对象: 


     <result type= "chain " name="a2">action2</result> 


2. 不保存前一个action的参数可以用这种方法: 


      <result  type= "redirectAction "> action2</result>

Struts.xml

Java代码 

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
  3. <struts>
  4. <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留-->
  5. <package name="limin" extends="struts-default">
  6. <action name="sa1_*" class="com.Action.StrAction1" method="{1}">
  7. <!--<result type="chain" name="sa2">sa2_sa2</result>  -->
  8. <result type="redirectAction" name="sa2">sa2_sa2</result>
  9. </action>
  10. <action name="sa2_*" class="com.Action.StrAction2" method="{1}">
  11. <result>/index.jsp</result>
  12. </action>
  13. </package>
  14. </struts>
[java] 
view plain
copy
print
?

 

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
  3. <struts>
  4. <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留-->
  5. <package name="limin" extends="struts-default">
  6. <action name="sa1_*" class="com.Action.StrAction1" method="{1}">
  7. <!--<result type="chain" name="sa2">sa2_sa2</result>  -->
  8. <result type="redirectAction" name="sa2">sa2_sa2</result>
  9. </action>
  10. <action name="sa2_*" class="com.Action.StrAction2" method="{1}">
  11. <result>/index.jsp</result>
  12. </action>
  13. </package>
  14. </struts>

action1

Java代码 

  1. public class StrAction1 {
  2. String a ="liminhappygirl";
  3. public String getA() {
  4. return a;
  5. }
  6. public void setA(String a) {
  7. this.a = a;
  8. }
  9. public String sa1() {
  10. HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
  11. request.setAttribute("limin", "happygirl");
  12. System.out.println("sal已经执行");
  13. return "sa2";
  14. }
  15. }
[java] 
view plain
copy
print
?

 

  1. public class StrAction1 {
  2. String a ="liminhappygirl";
  3. public String getA() {
  4. return a;
  5. }
  6. public void setA(String a) {
  7. this.a = a;
  8. }
  9. public String sa1() {
  10. HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
  11. request.setAttribute("limin", "happygirl");
  12. System.out.println("sal已经执行");
  13. return "sa2";
  14. }
  15. }

action2

Java代码 

  1. public class StrAction2 {
  2. public String sa2() {
  3. HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
  4. //当type="chain" 时能保存住request对象
  5. System.out.println(request.getAttribute("limin"));
  6. return Action.SUCCESS;
  7. }
  8. }
[java] 
view plain
copy
print
?

 

  1. public class StrAction2 {
  2. public String sa2() {
  3. HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
  4. //当type="chain" 时能保存住request对象
  5. System.out.println(request.getAttribute("limin"));
  6. return Action.SUCCESS;
  7. }
  8. }



Struts2 中action之间的跳转(分享)的更多相关文章

  1. 关于struts2中action请求会执行两次的问题

    关于struts2中action请求会执行两次的问题     在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行 ...

  2. Struts2中Action接收参数的方法主要有以下三种:

    Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式):     a.定义:在Action类中定义属性,创建get和set方法:     b.接 ...

  3. Struts2中Action取得表单数据的几种方法

    Struts2中Action取得表单数据的几种方法   Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...

  4. struts2中Action到底是什么,怎么理解

    struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类, ...

  5. jap页面获取struts2中action中变量的值

    在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...

  6. Struts2中Action接收参数的方法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...

  7. 基于用户登陆的struts2中action的分类详解

    在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...

  8. Struts2中Action自己主动接收參数

    Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式)     a.定义:在Action类中定义属性,创建get和set方法.     b. ...

  9. Struts2中Action接收参数

    Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属 ...

随机推荐

  1. 使用weight属性实现视图的居中显示

    有的时候我们开发一个产品的时候需要让其中某个控件的宽度或高度占据其父容器的宽度或高度的一半显示,这个时候由于设备尺寸的限制,做到在每个设备上都具有同样的效果的话,我们就需要用到weightSum属性和 ...

  2. Tip插件的使用

    Tip.js概述——美化弹窗插件 开源美化弹窗插件1.JavaScript原生代码2.美化网站用户界面 Tip.js插件的显示效果 Tip.js的使用方法 Tip({ str:'alert上需要弹出显 ...

  3. English - 英文写作中的最常见“十大句式”

    英文写作中的最常见“十大句式” from 小木虫论坛 一.否定句 许多否定句不含not的否定结构.如果论文作者能正确使用他们,就会增加写作的闪光点,使文章显得生动活泼. 1.Instead of in ...

  4. ACM题目:487-3279

    题目是这样子的 Description Businesses like to have memorable telephone numbers. One way to make a telephone ...

  5. Java处理java.util.ConcurrentModificationException异常

    代码: public static void reduce(HashMap<String, Integer> hashMap, final Integer count) { Iterato ...

  6. 《Pointers On C》读书笔记(第五章 操作符和表达式)

    1.C语言操作符优先级表 2.算术操作符中%(取模操作符)只适用于整型类型,其余几个操作符(+.-.*./)既适用于整型类型也适用于浮点类型.当/操作符的两个操作数都是整型时,它执行整除运算,其它情况 ...

  7. Javascript 设计模式笔记

    设计模式太多了 还有些模式概念非常接近(比如观察者 中介者 和 事件发布/订阅模式) 构造器模式 var newObject = {} var newObject = new XXX(); 模块模式 ...

  8. 苹果iPhone不能判断红外发射管的好坏

    用手机来检测红外发射管好坏是目前比较常用的方法.实际操作比较简单,就是按照红外发射管的工作电压给发射管接上电源后,把手机的摄像头对着红外发射管就能看出好坏了.由于红外线是肉眼看不见的,如果不通过手机摄 ...

  9. Pro/Engineer wildfire 5.0 野火版系列下载及安装方法

    三.PTC Pro/Engineer wildfire 5.0 M030 野火版最新版 DVD 下载(多国语言) 1.野火下载站下载32&64位下载:[32位] http://down.pro ...

  10. 应用AXIS开始Web服务之旅(soap web services)——使用三种不同的语言访问创建的Web服务,分别是JAVA、VB、VC

    一. 介绍 本文并不是想介绍Web服务的原理.系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念.原理等知识.本文主要是针对那些已经了解Web服务概念,但是还没有亲身体会Web服务所带来令 ...