Struts2系统学习(9)Action中操作request/session/application等对象

来源:互联网 发布:板式家具折单软件 编辑:程序博客网 时间:2024/06/10 11:45

9. Action中操作request/session/application对象

  在action中操作request/session/application属性:
  方法一:直接在scope范围内put数据

ActionContext actionContext = ActionContext.getContext();/* *  相当于: *  application.setAttribute(name, object) *  session.setAttribute(name, object) *  request.setAttribute(name, object) */actionContext.getApplication().put("app", "application scope");actionContext.getSession().put("ses", "session scope");actionContext.put("req", "request scope");

  注意:actionContext.getApplication()获取的并不是ServletContext对象,而是对应的scope范围。
  方法二:先直接获取request/session/application对象,再进行setAttribute操作

HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("req", "request scope");request.getSession().setAttribute("ses", "session scope");;// HttpServletResponse response = ServletActionContext.getResponse();servletContext = ServletActionContext.getServletContext();servletContext.setAttribute("app", "application scope");// ActionContext actionContext = ServletActionContext.getContext();

  注意:在jsp中通过EL表达式访问,需要添加applicationScope等:

${applicationScope.app }${sessionScope.ses }${requestScope.req }

  方法三:实现指定接口,由struts框架运行时注入:

public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware{    private HttpServletRequest request;    private ServletContext servletContext;    private HttpServletResponse response;    public void setServletRequest(HttpServletRequest req) {        this.request=req;    }    public void setServletResponse(HttpServletResponse res) {        this.response=res;    }    public void setServletContext(ServletContext ser) {        this.servletContext=ser;    }}


转载请注明出处:http://blog.csdn.net/mark_lq/article/details/49822543

1 0
原创粉丝点击