• Struts2 中action之间的跳转(分享)


    例如从你的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.  
    5. <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留--> 
    6. <package name="limin" extends="struts-default"
    7. <action name="sa1_*" class="com.Action.StrAction1" method="{1}"
    8. <!--<result type="chain" name="sa2">sa2_sa2</result>  --> 
    9. <result type="redirectAction" name="sa2">sa2_sa2</result> 
    10. </action> 
    11.  
    12. <action name="sa2_*" class="com.Action.StrAction2" method="{1}"
    13. <result>/index.jsp</result> 
    14. </action> 
    15. </package
    16.  
    17. </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.   
    5. <!--一个action跳转到另一个action 跳转方式为chain 会保留request对象 redirectAction 则不能保留-->  
    6. <package name="limin" extends="struts-default">  
    7. <action name="sa1_*" class="com.Action.StrAction1" method="{1}">  
    8. <!--<result type="chain" name="sa2">sa2_sa2</result>  -->  
    9. <result type="redirectAction" name="sa2">sa2_sa2</result>  
    10. </action>  
    11.   
    12. <action name="sa2_*" class="com.Action.StrAction2" method="{1}">  
    13. <result>/index.jsp</result>  
    14. </action>  
    15. </package>  
    16.   
    17. </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.   
    16. }  


    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.     } 
    [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. }  



  • 相关阅读:
    HTML学习笔记(四)常用标签
    HTML学习笔记(三)样式CSS
    HTML学习笔记(二)HTML格式化
    Myeclipse配置tomcat和jdk
    如何查看jdk版本和路径
    eclipse导入别人项目配置tomcat和jdk
    eclipse配置Tomcat
    maven管理工具配置
    leetcode_374. 猜数字大小
    leetcode_704. 二分查找
  • 原文地址:https://www.cnblogs.com/james1207/p/3292314.html
Copyright © 2020-2023  润新知