a.利用工具类 ActionContext(获得Map类型的request,session等),ServletActionContext(获得封装的request,session等)public class ScopeAction{ public String execute(){ ActionContext ac = ActionContext.getContext(); ac.getSession(); ac.getApplication(); //或者使用如下方式得到request,session Map<String,Object> request = (Map<String,Object>)ac.get("request"); request.put("hello","hello world"); ac.get("session"); HttpServletRequest httpRequest = ServletActionContext.getRequest(); } }
b.以Aware接口方式注入******************推荐使用框架提供一系列的Aware接口,import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.util.ServletContextAware; public class BaseAction implements RequestAware,SessionAware,ServletRequestAware,ServletContextAware{ public Map<String,Object>request; public Map<String,Object>session; public HttpServletRequest httpRequest; public HttpSession httpSession; public ServletContext application; public void setRequest(Map<String,Object>request){ this.request = request; } public void setSession(Map<String,Object>session){ this.session = session; } public void setServletContext(ServletContext servletContext) { this.application = servletContext; } public void setServletRequest(HttpServletRequest httpRequest) { this.httpRequest = httpRequest; this.httpSession =httpRequest.getSession(); } }
struts2 Action获取request,session,application
最新推荐文章于 2019-03-09 18:48:52 发布