來自:http://www.cnblogs.com/hgfrzh/p/3401658.htmlhtml
因爲在Action中並不能直接誒訪問Servlet API,但它提供了相關類ActionContext來訪問HttpServletRequest、HttpSession和ServletContext,因此在向前端頁面傳值的方法就出現了多樣化。通常咱們常常使用的就是經過request、session來傳值,至於Application範圍這一級別的基本上用的少。前端
1. 首先若是變量是Action的全局變量,而且定義了Setter方法,那麼此時無須作任何更多工做,只要它有值在前端頁面就能夠取到。此時取值的方法大概有這幾種:java
2. 對應方法體內的局部變量,咱們能夠放在request裏面,也能夠放在session裏面。可是,只有在必要的時候才放在session裏面。session
(1)放在request裏面:spa
a. 直接調用ActionContext提供的put方法:code
ActionContext.getContext().put(key, value);
此時的取值方式有:htm
b. 使用ActionContext提供的get方法:
blog
Map request = (Map)ActionContext.getContext().get("request"); request.put(key, value);
此時的取值方式有:get
c. 使用ServletActionContext訪問HttpServletRequest獲得Servlet中的request:
io
HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute(key, value);
此時的取值方式有:
(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); //(已過期,不推薦使用)
此時的取值方式有:
b.直接使用ActionContext.getContext().getSession():
這種方式取值與上面的徹底同樣,再也不贅述。