本文主要是介绍关于ActionContext.getContext()取得的值是什么,和struts2如何获取request,session,appliaction作用域,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天做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;}@Overridepublic 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;}
}
这篇关于关于ActionContext.getContext()取得的值是什么,和struts2如何获取request,session,appliaction作用域的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!