简单介绍Struts2的数据中心 ---context map中的根ValueStack

ValueStack介绍

valueStack也称为context map的根,它实际上是一个list,也是一个栈区(先进后出的原则),为什么说它是一个list呢?
ValueStack也有一个它自己的根,就是它内部的属性CompoundRoot它是ValueStack的根,我们说ValueStack是一个集合其实就是在说CompoundRoot(CompoundRoot继承了ArrayList)

操作ValueStack中的数据

1.操作栈中的栈顶对象

我们可以从它是一个栈区入手
分别有三个方法:push()压一个对象进栈
pop()弹栈(栈顶对象出栈)
peek()去栈顶对象

2.ValueStack中常用的API

在介绍context map时,我介绍了获取ValueStack的三种方式
这里是连接[简单介绍Struts2的数据中心 —context map],在这里就不详细说了,我们使用最简便的方式获取

ValueStack valueStack = ActionContext.getContext().getValueStack();
// 先值栈中存东西(是以key-value形式存放的)
valueStack.set("p","PPPP");
// 向值栈中存东西
// 先检测栈顶是不是一个map
// 如果不是就创建一个map
// map中的数据就是p=PPPP
// 使用push把这个map压入栈顶
// 如果有就直接向map里面存

// setValue方法,第一个参数是OGNL表达式,从栈顶找setName的方法(OGNL表达式会在后面专门的写一篇文章介绍,它是struts提供给我们的,拥有强大功能的表达式语言)
valueStack.setValue("name","杨树林")

// 使用#号就代表向context map中存放数据
// 相当于ActionContext.getContext.put();
valueStack.setValue("#p3","pppp");

// 从栈顶寻找name属性
valueStack.findValue("name");

// 从context map开始找
valueStack.findValue("#p3");

// 从栈顶开始找,找不到就会把这个p3当做key到context map中找
valueStack.findValue("p3");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值