ActionContext对象概述
它是一个工具类,是 struts2 框架提供给我们的,可以让我们调用其中的方法,快速的操作ContextMap。
用它操作OGNL 上下文对象,比直接操作ContextMap要方便很多。
ActionContext对象以及和 ContextMap的关系
ActionContext就相当于对ContextMap 进行了一次再封装。
ActionContext何时创建
由于 ActionContext 是操作的 ContextMap,而 ContextMap 中封了我们一次请求的所有数据,所以它
的创建应该是每次请求访问 Action 时,即核心控制器(StrutsPrepareAndExecuteFilter)的 doFilter 方法
执行时,下图是代码截取:
ActionContext的线程安全
我们都知道,java 的 web 工程是多线程的,那么每个线程在访问 Action 时,都会创建自己的
ActionContext,那么是如何保证在获取 ActionContext时,每个线程都能获取到自己的那个呢?
答案就是,每次创建ActionContext时,把对象绑定到当前线程上。下图是代码截取: