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作用域中 |
Struts2框架的Action与Servlet API分离,为方便使用request、session等对象处理业务,提供了ActionContext类。它是Action的上下文对象,保存运行数据,Struts2会为每个线程创建对应的ActionContext,用户可用getContext()获取,文中还提及该类常用方法。

1441

被折叠的 条评论
为什么被折叠?



