Struts2 中action之间的跳转(分享)
<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>
<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会改变)
1. 需要保存前一个action的属性信息时使用,保存住action1的request对象: 
  
 
       <result type= "chain " name="a2">action2</result> 
  
 
  2. 不保存前一个action的参数可以用这种方法: 
  
 
        <result  type= "redirectAction "> action2</result>
Struts.xml
    - <?xml version="1.0" encoding="UTF-8" ?>
 - <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd">
 - <struts>
 - <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留-->
 - <package name="limin" extends="struts-default">
 - <action name="sa1_*" class="com.Action.StrAction1" method="{1}">
 - <!--<result type="chain" name="sa2">sa2_sa2</result> -->
 - <result type="redirectAction" name="sa2">sa2_sa2</result>
 - </action>
 - <action name="sa2_*" class="com.Action.StrAction2" method="{1}">
 - <result>/index.jsp</result>
 - </action>
 - </package>
 - </struts>
 
- <?xml version="1.0" encoding="UTF-8" ?>
 - <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
 - <struts>
 - <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留-->
 - <package name="limin" extends="struts-default">
 - <action name="sa1_*" class="com.Action.StrAction1" method="{1}">
 - <!--<result type="chain" name="sa2">sa2_sa2</result> -->
 - <result type="redirectAction" name="sa2">sa2_sa2</result>
 - </action>
 - <action name="sa2_*" class="com.Action.StrAction2" method="{1}">
 - <result>/index.jsp</result>
 - </action>
 - </package>
 - </struts>
 
action1
    - public class StrAction1 {
 - String a ="liminhappygirl";
 - public String getA() {
 - return a;
 - }
 - public void setA(String a) {
 - this.a = a;
 - }
 - public String sa1() {
 - HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
 - request.setAttribute("limin", "happygirl");
 - System.out.println("sal已经执行");
 - return "sa2";
 - }
 - }
 
- public class StrAction1 {
 - String a ="liminhappygirl";
 - public String getA() {
 - return a;
 - }
 - public void setA(String a) {
 - this.a = a;
 - }
 - public String sa1() {
 - HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
 - request.setAttribute("limin", "happygirl");
 - System.out.println("sal已经执行");
 - return "sa2";
 - }
 - }
 
action2
    - public class StrAction2 {
 - public String sa2() {
 - HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
 - //当type="chain" 时能保存住request对象
 - System.out.println(request.getAttribute("limin"));
 - return Action.SUCCESS;
 - }
 - }
 
- public class StrAction2 {
 - public String sa2() {
 - HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
 - //当type="chain" 时能保存住request对象
 - System.out.println(request.getAttribute("limin"));
 - return Action.SUCCESS;
 - }
 - }
 
Struts2 中action之间的跳转(分享)的更多相关文章
- 关于struts2中action请求会执行两次的问题
		
关于struts2中action请求会执行两次的问题 在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行 ...
 - Struts2中Action接收参数的方法主要有以下三种:
		
Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式): a.定义:在Action类中定义属性,创建get和set方法: b.接 ...
 - Struts2中Action取得表单数据的几种方法
		
Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...
 - struts2中Action到底是什么,怎么理解
		
struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类, ...
 - jap页面获取struts2中action中变量的值
		
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...
 - Struts2中Action接收参数的方法
		
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...
 - 基于用户登陆的struts2中action的分类详解
		
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
 - Struts2中Action自己主动接收參数
		
Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式) a.定义:在Action类中定义属性,创建get和set方法. b. ...
 - Struts2中Action接收参数
		
Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数: a.定义:在Action类中定义属 ...
 
随机推荐
- nginx gzip on
			
# Gzip settings. gzip on; gzip_http_version 1.0;默认值是1.1 gzip_comp_level ; #压缩级别,1压缩比最小处理速度最快,9压缩比最大但 ...
 - hadoop搭建杂记:Linux下hostname的更改办法
			
VirtualBox搭建hadoop伪分布式模式:更改hostname VirtualBox搭建hadoop伪分布式模式:更改hostname master: ip:192.168.56.120 机器 ...
 - javascript小练习—点击将DIV变成红色(通过for循环遍历)
			
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
 - 批处理[Batch]
			
批处理 1. 定义:就是一堆DOS命令按一定顺序排列而形成的集合. 英文译为BATCH,批处理文件后缀BAT就取的前三个字母. 示例1:a.bat @echo off Netstat –a –n &g ...
 - ETL工具之ODI
			
ETL工具之ODI 到目前为止,Oracle的ETL工具包括两种,分别是Oracle Warehouse Builder(OWB)和Oracle Data Integrator(ODI ...
 - 如何使用沉浸式状态栏,让你的app风格更好看
			
大家都知道,传统的手机状态栏非黑即白,经常让整个app显得不是那么的好看,如何让状态栏的颜色跟你整个界面的颜色能够融为一体,这是我们一直想要的,现在给大家展示一下: 由图可见,第一张是没有使用沉浸式状 ...
 - 使用Fiddler解析WCF RIA Service传输的数据
			
原文 http://www.cnblogs.com/wintersun/archive/2011/01/05/1926386.html 使用Fiddler 2 解析WCF RIA Service传输的 ...
 - android 关于多任务下载问题
			
关于多任务下载问题 近期项目中,遇到一个问题,列表数据中的图片地址是一个需要下载JS再解析的字段,之前的图片下载是一个异步的过程,由一个队列处理. Android系统以不同寻常的方式处理多个应用 ...
 - ural 1057(数位dp)
			
数位dp题,关键是用树的思维去考虑. 对于一个数字X,要是能表示成K个B的不同次幂,等价于X在B进制下有且只有K个位上面的数字为一,其他位上的数字都为0. 具体读者可以去参考,国家集训队李聪的论文,里 ...
 - VB.NET版机房收费系统---SqlHelper
			
SqlHelper,最早接触这个词儿的时候,好像是13年的暑假,那个夏天来的比往年来的稍晚一些,呵呵,sqlhelper,翻译成中文就是数据库助手,帮手.百度百科这样对她进行阐述: SqlHelper ...