加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Struts2之值栈

发布时间:2020-12-15 04:53:02 所属栏目:百科 来源:网络整理
导读:值栈概述 值栈就相当于Struts2框架的数据的中转站,向值栈存入一些数据,从值栈中获取到数据 ValueStack是struts2提供一个接口,实现类OgnlValueStack—值栈对象(OGNL是从值栈中获取数据的) Action是多例的,有一起请求,创建Action实例,创建一个ActionCo

值栈概述

值栈就相当于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把动作和相关对象压入ObjectStack中----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,parameters对象数据,必须写#


操作值栈 默认指 操作 root 元素

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读