Struts2框架中的Action在设计时已经与Servlet API进行了分离,这使得Struts2的Action具有更加灵活和低耦合的特性,但是在实际应用中可能经常需要使用request,session等对象处理相应的业务逻辑,Struts2框架正是认识到了这一点,于是向用户提供了com.opensymphony.xwork2.ActionContext类,用户通过该类可以间接的访问到Servlet API.
ActionContext是Action的上下文对象,Action在运行期间所用到的数据都保存在ActionContext中,列如:request和session中的参数信息。Struts2会根据每个执行HTTP请求的线程来创建对应的ActionContext,每个线程都会拥有一个ActionContext。用户可以使用ActionContext类的静态方法getContext()来获取当前线程的ActionContext对象。
ActionContext类中常用的方法:
类型名称 | 说明 |
static ActionContext getContext() | 获取当前线程的ActionContext对象 |
Object get(String key) | 通过参数名称获取ActionContext对象中保存的值 |
Map<String, Object> getApplication() | 获取一个application级别的Map对象 |
Map<String, Object> getParameters() | 获取一个包含所有HttpServletRequest中参数信息的Map对象 |
Map<String, Object> getSession() | 获取一个包含HttpSession中参数信息的Map对象 |
void put(String key, Object value) | 向AclicationContext对象中存入键值对数据 |
void setSession(Map<String, Object> session) | 将Map集合中的数据保存到HttpSession作用域中 |
void setApplication(Map<String, Object> application) | 将Map集合中的数据保存到Application作用域中 |