【轉-整理】Struts2從后台傳遞數據到前台的主要方法和流程


兩種主要方式:
一 和Servlet API耦合的訪問方式
二 和Servlet API解耦的訪問方式


********************************************************************
一 和Servlet API耦合的訪問方式
1、 采用Request  (HttpServletRequest)對象來傳遞數據
(1)在Action類文件中
    (A) 導入ServletActionContext類:
          import org.apache.struts2.ServletActionContext;
    (B) 獲得request對象,具體的方法如下:
          HttpServletRequest request = ServletActionContext.getRequest ();
    (C)通過setAttribute()方法把需要傳遞的數據對象放入request對象中:
          request.setAttribute("key",Object);


(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) request.getAttribute("key")獲得被傳遞的數據對象。
    (B) <s:iterator value="#request.key"> 獲得被傳遞的數據對象。


2、采用application (ServletContext) 對象來傳遞數據
(1)在Action類文件中
    (A) 導入ServletActionContext類:
          import org.apache.struts2.ServletActionContext;
    (B) 獲得application對象,具體的方法如下:
          ServletContext application = ServletActionContext.getServletContext ();
    (C)通過setAttribute()方法把需要傳遞的數據對象放入application對象中:
          application.setAttribute("key",Object);
 
(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) application.getAttribute("key")獲得被傳遞的數據對象。
    (B)<s:iterator value="#application.key"> 獲得被傳遞的數據對象。


3、采用session (HttpSession) 對象來傳遞數據
(1)在Action類文件中
    (A) 導入ServletActionContext類:
          import org.apache.struts2.ServletActionContext;
    (B) 獲得session對象,具體的方法如下:
          HttpSession session = ServletActionContext.getRequest ().getSession();
    (C) 通過setAttribute()方法把需要傳遞的數據對象放入session對象中:
          session.setAttribute("key",Object);


(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) session.getAttribute("key")獲得被傳遞的數據對象。
    (B) <s:iterator value="#session.key"> 獲得被傳遞的數據對象。


*********************************************************************************
二和Servlet API解耦的訪問方式

1、 采用Request  (HttpServletRequest對應的Map對象)對象來傳遞數據
(1)在Action類文件中
    (A) 導入ActionContext類:
          import com.opensymphony.xwork2.ActionContext;
    (B) 獲得request對象,具體的方法如下:
          ActionContext context= ActionContext.getContext();
          Map request = (Map)context.get("request");
    (C)通過put()方法把需要傳遞的數據對象放入request對象中:
          request.put("key",Object);


(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) request.getAttribute("key")獲得被傳遞的數據對象。
    (B) request.get("key")獲得被傳遞的數據對象。
    (C) <s:iterator value="#request.key"> 獲得被傳遞的數據對象。
    (D) requestScope.key 獲得被傳遞的數據對象。


2、采用application (ServletContext對應的Map對象) 對象來傳遞數據
(1)在Action類文件中
    (A) 導入ActionContext類:
          import com.opensymphony.xwork2.ActionContext;
    (B) 獲得application對象,具體的方法如下:
          ActionContext context= ActionContext.getContext();
          Map application = (Map)context.getApplication();
    (C)通過put()方法把需要傳遞的數據對象放入application對象中:
          application.put("key",Object);


(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) application.getAttribute("key")獲得被傳遞的數據對象。
    (B) application.get("key")獲得被傳遞的數據對象。
    (C) <s:iterator value="#application.key"> 獲得被傳遞的數據對象。
    (D) applicationScope.key 獲得被傳遞的數據對象。






3、采用session (HttpSession對應的Map對象) 對象來傳遞數據
(1)在Action類文件中
    (A) 導入ActionContext類:
          import com.opensymphony.xwork2.ActionContext;
    (B) 獲得session對象,具體的方法如下:
          ActionContext context= ActionContext.getContext();
          Map session = (Map)context.getSession();
    (C)通過put()方法把需要傳遞的數據對象放入session對象中:
          session.put("key",Object);


(2)JSP文件中,有多種方法可以獲得被傳遞的數據對象,比如:
    (A) session.getAttribute("key")獲得被傳遞的數據對象。
    (B) session.get("key")獲得被傳遞的數據對象。
    (C) <s:iterator value="#session.key"> 獲得被傳遞的數據對象。
    (D) sessionScope.key 獲得被傳遞的數據對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM