5. 问题五: 向值栈保存数据 (主要针对root栈)
> valueStack.push(Object obj);
* push方法的底层调用root对象的push方法(把元素添加到0位置)
> valueStack.set(String key, Object obj);set往里面存储map集合
* 源码获取map集合(map有可能是已经存在的,有可能是新创建的),把map集合push到栈顶,再把数据存入到map集合中。
> 在jsp中 通过 <s:debug /> 查看值栈的内容
不管是push方法还是set方法都是针对root栈。
- 使用push方法存放数据的时候,直接将数据压入栈中。当又压入一个元素的时候,栈中元素依次往下移。
- 使用set方法存放数据时,由于存放的是map,所以需要进行判断:
(1)检查栈顶是否是map集合
(2)如果不是继续压入压栈,在栈顶创建一个map集合,并且把数据存放进去
(3)如果栈顶是map集合,则将数据直接存放进去