Struts2值栈分析

值栈分为Stack  、ContextMap两部分




valueStack  push对象
在debug里查看   是以属性键值得方式出现


valueStack  put对象
在debug里查看   是以key-对象的方式出现


根元素存放
1. obj作为类的的数据成员
2.valueStack.push(Obj)
3.valueStack.getRoot.push(Obj)
4.valueStack.getRoot.add(Obj)  
5.valueStack.set(String,obj)  以key-value键值对的形式存放在根元素的Map中

#3 4的区别在于 push是把valuestack中的值栈看成stack,入栈顶
                      add  是把valueStack中的值栈看成普通的List,放在列最后面
  
  
非根元素存放
1.放在pageContext、Request、session、ApplicationConext域中
2.ActionContext.getContextMap().put(String,Obj)
3.ActionContext.put(String,Obj

#<s:property value="#request.xxx"> 可以取以上3种值。 因为request域中如果取不到,会去ContextMap中取




EL表达式可以取根元素和非根元素的值,在取得时候不用作区分,只要根据S:debug中的键值按规则取即可
原因:el表达式首先从pageContext、Request、session、ApplicationConext域中取,如果取不到就会去值栈中取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值