ContextMap概述
它是OGNL 上下文对象,是 struts2 中封装数据最大的对象 , 我们一次请求中所有用到的信息都
可以在它里面找到。
它是一个 Map结构的对象,其中key是字符串,value是一个Object。
OGNL上下文对象是struts2中封装数据最大的一个对象
|--application
|--session
|--request
context map---|
|--value stack(root)
|
|--action (the current action)
|--parameters
|--attr (searches page, request, session, then application scopes)
Map的 key(类型是String) | Map的 Value (类型是 Object) | 说明信息 |
---|---|---|
1. application | Java.util.Map<String,Object> | 封装的应用域中的所有数据 |
2. session | Java.util.Map<String,Object> | 封装的会话域中的所有数据 |
3. request | Java.util.Map<String,Object> | 封装的请求域中的所有数据 |
4. valueStack(特殊) | com.opensymphony.xwork2.ognl.OgnlValueStack | 它是 List结构 |
5. parameters | Java.util.Map<String,String[]> | 封装的是请求参数 |
6. attr | Java.util.Map<String,Object> | 封装的是四大域的组合数据,从最小的域开始搜索 |
7. action | com.opensymphony.xwork2.ActionSupport | 当前执行的动作类对象 |
用颜色把它区分开,目的是让我们明确一件事:
1-3的:是我们已经会了的。
四大域对象在jsp那天就已经学过了。
5-7的:是我们不用管的。
- parameters:现在我们已经会用模型驱动了,所以再也不用自己取了。
- attrs:由于 ContextMap中已经包含了三大域,page域的范围又太小了。
- action:在后面我们讲的值栈中,会提供这个当前执行的动作类,他会把action存到值栈中
4的:它是我们第一次接触的,以前不会。
而且是 struts2中经常用的,所以它是重点!
OGNL上下文对象与ActionContext的关系
工具类方便我们操作OGNL上下文对象