Struts2访问或添加request、session、application范围属性
/**
* cn.jbit.struts2.action.HelloWorldAction3
* 4种访问或添加属性
* 1、通过ActionContext
* 2、通过ServletActionContext
* 3、通过实现接口RequestAware, SessionAware, ApplicationAware
* 4、通过实现接口ServletRequestAware, ServletContextAware
* 2014-4-22
* gyy
*/
package cn.jbit.struts2.action;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionContext;
public class HelloWorldAction3 implements RequestAware, SessionAware,
ApplicationAware, ServletRequestAware, ServletContextAware {
private Map<String, Object> requestMap;
private Map<String, Object> sessionMap;
private Map<String, Object> applicationMap;
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public String execute() {
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用程序范围");
ctx.getSession().put("ses", "Session范围");
ctx.put("req", "请求范围");
return "success";
}
public String other() {
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext ctx = ServletActionContext.getServletContext();
request.setAttribute("req", "请求范围");
request.getSession().setAttribute("ses", "Session范围");
ctx.setAttribute("app", "应用程序范围");
return "success";
}
public void setRequest(Map<String, Object> request) {
this.requestMap = request;
}
public void setSession(Map<String, Object> session) {
this.sessionMap = session;
}
public void setApplication(Map<String, Object> application) {
this.applicationMap = application;
}
public void setServletRequest(HttpServletRequest httpservletrequest) {
this.request = httpservletrequest;
// 根据请求获取session
this.session = this.request.getSession();
}
public void setServletContext(ServletContext servletcontext) {
this.application = servletcontext;
}
public Map<String, Object> getRequestMap() {
return requestMap;
}
public void setRequestMap(Map<String, Object> requestMap) {
this.requestMap = requestMap;
}
public Map<String, Object> getSessionMap() {
return sessionMap;
}
public void setSessionMap(Map<String, Object> sessionMap) {
this.sessionMap = sessionMap;
}
public Map<String, Object> getApplicationMap() {
return applicationMap;
}
public void setApplicationMap(Map<String, Object> applicationMap) {
this.applicationMap = applicationMap;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpSession getSession() {
return session;
}
public void setSession(HttpSession session) {
this.session = session;
}
public ServletContext getApplication() {
return application;
}
public void setApplication(ServletContext application) {
this.application = application;
}
}