Struts2 在Action中访问上下文变量

若是要取得Servlet API 中的一些对象,如request、response或session,在struts2 中能够有两种方式得到这些对象:session

① 非IoC(Inversion of Contorl)方式this

     HttpServletRequest request = ServletActionContext.getRequest();对象

     HttpServletResponse response = ServletActionContext.getResponse();接口

     HttpSession session = request.getSession();get

若是你只想访问session的属性(Attribute)或添加session的属性,你能够经过下面的方式。io

Map session = ActionContext.getContext().getSession();class

     session.put("username", "joe");容器

     String username =  (String)session.get("username");struts2

② IoC方式变量

要使用IoC方式,首先要告诉IoC容器(Container)想要取得摸个对象的意愿,经过实现相应的接口作到这点。包括 SessionAware、ServletRequestAware、ServletResponseAware,这样就能够在该类中定义对应的变量了。

public class IoCServlet extends ActionSupport implements SessionAware,ServletRequestAware,ServletResponseAware{
private Map att;
private HttpServletRequest request;
private HttpServletResponse response;
public void setSession(Map att){
this.att = att;
       }
public void setServletRequest(HttpServletRequest request){
this.request = request;
       }
public void setServletResponse(HttpServletResponse response){
this.response = response;
       }
public String execute(){        } }

相关文章
相关标签/搜索