来自: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():
这种方式取值与上面的彻底同样,再也不赘述。