zoukankan      html  css  js  c++  java
  • 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域中取,如果取不到就会去值栈中取
  • 相关阅读:
    非递归前序遍历,效率高 和 中序遍历代码都相似
    递归-变量-堆栈-透彻理解
    Linux 进程管理
    5linux引导流程解析
    Linux 软件包管理
    vim
    Linux常用命令
    Linux 系统安装
    linux 应用和发展
    贴图、纹理、材质的区别是什么? 还有shader
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226195.html
Copyright © 2011-2022 走看看