struts框架值栈问题二之值栈的内部结构

Posted wyhluckydog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts框架值栈问题二之值栈的内部结构相关的知识,希望对你有一定的参考价值。

2. 问题二 : 值栈的内部结构 ?
    * 值栈由两部分组成
        > root      -- Struts把动作和相关对象压入 ObjectStack 中--List
        > context   -- Struts把各种各样的映射关系(些 Map 类型的对象) 压入 ContextMap 中

    * Struts会默认把下面这些映射压入ContextMap(context)中
        * 注意:request代表的是Map集合的key值,value的值其实也是一个Map集合。

        > parameters: 该 Map 中包含当前请求的请求参数  ?name=xxx&password=123
        > request: 该 Map 中包含当前 request 对象中的所有属性
        > session: 该 Map 中包含当前 session 对象中的所有属性
        > application:该 Map 中包含当前 application  对象中的所有属性
        > attr: 该 Map 按如下顺序来检索某个属性: request, session, application
  值栈一创建里面就有很多值,但是这些值不是我们需要使用的。
    * ValueStack中 存在root属性 (CompoundRoot) 、 context 属性 (OgnlContext )
        > CompoundRoot 就是ArrayList
        > OgnlContext 就是 Map

    * context 对应Map 引入 root对象 
        > context中还存在 request、 session、application、 attr、 parameters 对象引用 
        > OGNL表达式访问值栈中的数据
            * 访问root中数据时 不需要 #
            * 访问 request、 session、application、 attr、 parameters 对象数据 必须写 # 

        > 操作值栈 默认指 操作 root 元素

以上是关于struts框架值栈问题二之值栈的内部结构的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 之值栈

Struts2复习之值栈与OGNL

基于初学者的SSHstruts2 值栈的详解与struts2标签库+ognl表达式

Struts2 中的值栈的理解

Struts2 值栈总结(ValueStack)

struts学习