Struts2後端向前端傳參

Struts2後端向前端傳參 html

2016-05-05 15:32 62人閱讀 評論(0) 收藏 舉報前端

http://static.blog.csdn.net/images/category_icon.jpg分類:java

javaee(9) http://static.blog.csdn.net/images/arrow_triangle%20_down.jpg後端

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。session

spa

因爲在Action中並不能直接誒訪問Servlet API,但它提供了相關類ActionContext來訪問HttpServletRequest、HttpSession和 ServletContext,因此在向前端頁面傳值的方法就出現了多樣化。通常咱們常常使用的就是經過request、session來傳值,至於 Application範圍這一級別的基本上用的少。.net

1. 首先若是變量是Action的全局變量,而且定義了Setter方法,那麼此時無須作任何更多工做,只要它有值在前端頁面就能夠取到。此時取值的方法大概有這幾種:htm

  • 使用Java代碼:<%= request.getParameter(「str」)%>, <%=request.getAttribute(「str」)%> 這兩種方式一般不推薦,原則上html代碼不用摻雜Java代碼;
  • 使用EL表達式:${str};
  • 使用Struts2標籤:<s:property value=」str」 /> ;
  • 使用OGNL表達式:<s:property value=」#request.str」/>.

2. 對應方法體內的局部變量,咱們能夠放在request裏面,也能夠放在session裏面。可是,只有在必要的時候才放在session裏面。blog

(1)放在request裏面:get

a. 直接調用ActionContext提供的put方法:ActionContext.getContext().put(key, value);此時的取值方式有:

  • 使用Java代碼:<%=request.getAttribute("str") %>,一樣不推薦;
  • 使用EL表達式:${str };
  • 使用Struts2標籤:<s:property value=」str」/>;
  • 使用OGNL表達式:<s:property value=’'#request.str」/>.

b. 使用ActionContext提供的get方法:Map request = (Map)ActionContext.getContext().get("request"); request.put(key, value);此時的取值方式有:

  • 使用Java代碼:<%=request.getAttribute("str") %>,一樣不推薦;
  • 使用EL表達式:${str };
  • 使用OGNL表達式:<s:property value=’'#request.str」/>.

c. 使用ServletActionContext訪問HttpServletRequest獲得Servlet中的 request:HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute(key, value);此時的取值方式有:

  • 使用Java代碼:<%=request.getAttribute("str") %>,一樣不推薦;
  • 使用EL表達式:${str };
  • 使用OGNL表達式:<s:property value=’'#request.str」/>.

(2)放在session裏面:

a. 使用ServletActionContext訪問HttpServletRequest獲得Servlet中的request,再由request獲得 session:HttpServletRequest request = ServletActionContext.getRequest();

    HttpSession session = request.getSession(); session.setAttribute(key, value);或session.putValue(key, value);(已過期,不推薦使用),此時的取值方式有:

  • 使用Java代碼:<%=session.getAttribute("str") %>或<%=session.getValue("sstr") %>(與putValue對應,已過期,不推薦使用);
  • 使用EL表達式:${str };
  • 使用OGNL表達式:<s:property value=’'#session.str」/>.

b.直接使用ActionContext.getContext().getSession():這種方式取值與上面的徹底同樣,再也不贅述。

相關文章
相關標籤/搜索