Struts2之值栈

值栈概述

  • 值栈就相当于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,application,attr,parameters对象数据,必须写#
    操作值栈 默认指 操作 root 元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值