struts2 從一個action 跳轉到另一個action的兩種方法

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

http://blog.csdn.net/spjhandsomeman/article/details/7845986


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章