关于ActionContext.getContext()取得的值是什么,和struts2如何获取request,session,appliaction作用域
2015-05-13 11:02
671 查看
今天做struts时发现了一个bug。
有个tea对象,该对象包含id,name等属性,由于项目的需要,我希望把它存入到request作用域里,查阅资料后网上有人说是通过ActionContext.getContext().put("tea“, tea);的方式可以实现存入request作用域的效果。
但是实际发现当我在jsp页面上写下这样语句取得request域里tea的id:<s:property value="#request.tea.id"/>,实际结果为空。
为什么会这样呢?再次查阅多方资料后,发现其实ActionContext.getContext()其实上获得的是ValueStack,而非我们想象中的request作用域,因此以上语句得不到我们想要的结果。
下面给出struts2种获取valuestack,request,session,appliaction作用域的方法:
package com.hcj.action.database.admin;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Test extends ActionSupport {
private ActionContext context;
private Map request;
private Map session;
private Map application;
public ActionContext getContext() {
return context;
}
public void setContext(ActionContext context) {
this.context = context;
}
public Map getRequest() {
return request;
}
public void setRequest(Map request) {
this.request = request;
}
public Map getSession() {
return session;
}
public void setSession(Map session) {
this.session = session;
}
public Map getApplication() {
return application;
}
public void setApplication(Map application) {
this.application = application;
}
@Override
public String execute() throws Exception {
this.context = ActionContext.getContext();
this.request = (Map)this.context.get("request");
this.session = this.context.getSession();
this.application = this.context.getApplication();
this.context.put("contenx", "我是valueStack");
this.request.put("request", "我是request");
this.session.put("session", "我是session");
this.application.put("application", "我是application");
return SUCCESS;
}
}
有个tea对象,该对象包含id,name等属性,由于项目的需要,我希望把它存入到request作用域里,查阅资料后网上有人说是通过ActionContext.getContext().put("tea“, tea);的方式可以实现存入request作用域的效果。
但是实际发现当我在jsp页面上写下这样语句取得request域里tea的id:<s:property value="#request.tea.id"/>,实际结果为空。
为什么会这样呢?再次查阅多方资料后,发现其实ActionContext.getContext()其实上获得的是ValueStack,而非我们想象中的request作用域,因此以上语句得不到我们想要的结果。
下面给出struts2种获取valuestack,request,session,appliaction作用域的方法:
package com.hcj.action.database.admin;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Test extends ActionSupport {
private ActionContext context;
private Map request;
private Map session;
private Map application;
public ActionContext getContext() {
return context;
}
public void setContext(ActionContext context) {
this.context = context;
}
public Map getRequest() {
return request;
}
public void setRequest(Map request) {
this.request = request;
}
public Map getSession() {
return session;
}
public void setSession(Map session) {
this.session = session;
}
public Map getApplication() {
return application;
}
public void setApplication(Map application) {
this.application = application;
}
@Override
public String execute() throws Exception {
this.context = ActionContext.getContext();
this.request = (Map)this.context.get("request");
this.session = this.context.getSession();
this.application = this.context.getApplication();
this.context.put("contenx", "我是valueStack");
this.request.put("request", "我是request");
this.session.put("session", "我是session");
this.application.put("application", "我是application");
return SUCCESS;
}
}
相关文章推荐
- Struts2中解耦合通过actionContext对象获取到aplication,session,request,paramter等对象
- struts2中action如何获取Session,request,jsp页面参数等等信息的值
- struts2中action如何获取Session,request,jsp页面参数等等信息的值
- struts2的Action中如何取得request ,session,application域对象(IOC方式和非IOC方式)
- struts2中action如何获取Session,request,jsp页面参数等等信息的值
- Struts2的Action中获取request,session,application对象
- Struts2中action获取request、response、session的方式
- Jimoshi_Struts2 框架学习(二)--action生命周期、struts.xml中全局的配置、获取request和session和response值、IOC思想
- ActionContext与ServletActionContext的区别及获取request、session等对象
- Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)
- struts2 action中获取request session application的方法
- Struts2中ActionContext介紹 && Struts2如何获得request
- Struts2中ActionContext介紹 && Struts2如何获得request
- Struts2中action获取request、response、session的方式
- Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons
- Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons
- struts2 action中获取request session application的方法
- Struts2里如何取得request,session,application
- ajax异步处理时,如何在JS中获取从Servlet或者Action中session,request
- Struts2中action获取request、response、session的方式