Struts2值栈分析

来源:互联网 发布:网络摄像机检验报告 编辑:程序博客网 时间:2024/05/13 12:59
值栈分为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域中取,如果取不到就会去值栈中取
0 0
原创粉丝点击