值栈概述
- 值栈就相当于Struts2框架的数据的中转站,向值栈存入一些数据,从值栈中获取到数据
- ValueStack是struts2提供一个接口,实现类OgnlValueStack—值栈对象(OGNL是从值栈中获取数据的)
- Action是多例的,有一起请求,创建Action实例,创建一个ActionContext对象,代表的是Action的上下文对象,还会创建一个ValueStack对象
- 每个Action实例都有一个ValueStack对象,(一个请求对应一个ValueStack对象)
- 在其中保存当前Action对象和其他相关对象
- Struts框架把ValueStack对象保存在名为\"struts.valueStack\" 的请求属性中,request中(值栈对象 是request一个属性)
ValueStack vs = (ValueStack)request.getAttribute(\"struts.valueStack\");
值栈的内部结构
值栈由两部分组成
- root------Struts把动作和相关对象压入 Stack中----List
- context------Struts把各种各样的映射关系(一些map类型的对象)压入ContextMap中
Struts会默认把下面这些映射压入ContextMap(context)中
注意 :reqest代表的是Map集合的key值,value的值其实也是一个Map集合
| 名称 | 描述 |
|---|---|
| parameters | 该Map中包含当前请求的请求参数 ?name=xxx&password=123 |
| request | 该Map中包含当前request对象中的所有属性 |
| session | 该Map中包含当前session对象中的所有属性 |
| application | 该Map中包含当前application对象中的所有属性 |
| attr | 该Map按照如下顺序来检索某个属性:request,session,application |
ValueStack中,存在root属性(CompoundRoot),context属性(OgnlContext)
- CompoundRoot 就是ArrayList
- OgnlContext 就是Map
context对应Map引入root对象
- context 中还存在request,session,application,attr,parameters对象引用
- OGNL表达式访问值栈中的数据、
** 访问root中数据时不需要 #
** 访问request,session,application,attr,parameters对象数据,必须写#
操作值栈 默认指 操作 root 元素
继续阅读与本文标签相同的文章
上一篇 :
一份手游代理合同,让你知道游戏代理商该干什么!
下一篇 :
玩法升级,宝丽来实验室新增AR照片打印功能
-
想要随时能连Wifi,那就这样做!
2026-05-18栏目: 教程
-
【Kubernetes系列】第1篇 架构及组件介绍
2026-05-18栏目: 教程
-
SpaceX计划再发射3万颗卫星 地球卫星总数将提5倍
2026-05-18栏目: 教程
-
觉非科技:专注于提供自动驾驶决策地图与服务
2026-05-18栏目: 教程
-
五大常用算法:回溯法
2026-05-18栏目: 教程
