1. 通过获取 com.opensymphony.xwork2.ActionContext类的对象来获取四个作用域通信对象
//获取com.opensymphony.xwork2.ActionContext类对象
ActionContext actionContext = ActionContext.getContext();
//获取Application对象
Map<String ,Object> application = actionContext.getApplication();
//获取session对象
Map<String ,Object> session = actionContext.getSession();
//获取request对象
Map<String ,Object> request = (Map<String, Object>) actionContext.get("request");
//获取parameters对象
Map<String ,Object> parameters = (Map<String,Object>)
actionContext.getParameters()
2. 通过实现 ApplocationAware,RequestAware,SessionAware,ParameterAware 接口分别获取 applocation、request、session、parameters
public class TestAction implements ApplicationAware, RequestAware,
SessionAware{
private Map<String, Object> application;
private Map<String, Object> request;
private Map<String, Object> session;
public void setSession(Map<String, Object> session) {
this.session = session;
}
public void setRequest(Map<String, Object> request) {
this.request = request;
}
public void setApplication(Map<String, Object> application) {
this.application = application;
}
public String execute(){
application.put("ActionApplication", "ActionApplication");
session.put("ActionSession", "ActionSession");
request.put("ActionRequest", "ActionRequest");
return "success";
}
}
3. 通过 ServletActionContext 类获取
//通过ServletActionContext类的对象,获取作用域对象
//获取Application对象
ServletContext application = ServletActionContext.getServletContext();
//获取session对象
HttpSession session = ServletActionContext.getRequest().getSession();
//获取request对象
HttpServletRequest request = ServletActionContext.getRequest();
4. 通过实现ServletRequestAware,ServletResponseAware, ServletContextAware
public class TestServletAwareAction implements ServletRequestAware,
ServletResponseAware, ServletContextAware {
//获取HttpServletRequest
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
//获取HttpServletResponse
private HttpServletResponse response;
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
//获取ServletContext
private ServletContext application;
public void setServletContext(ServletContext application) {
this.application = application;
}
public String execute(){
//request
request.setAttribute("servletRequest", "servletRequest");
//session
request.getSession().setAttribute("servletSession", "servletSession");
//application
application.setAttribute("servletApplication", "servletApplication");
return "success";
}
}