Struts2学习笔记(六):值栈(value Stack)浅析
2015-08-26 23:58
295 查看
值栈(value stack)是struts2中的一个重要概念,值栈分为两个部分:object stack(对象栈)和context map(上下文映射)组成。
value stack贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个 ValueStack 对象, 相当于一个数据的中转站,在其中保存当前 Action 对象和其他相关对象.
下面先将value stack直观的给大家展示一下。为了展示value stack,需要在action 转发到的jsp页面中引入struts2标签库<%@ taglib prefix="s" uri="/struts-tags" %>并添加<s:debug></s:debug>
这样在显示该jsp页面时,上方会有一个[debug]链接,打开就能看到value stack中的内容,如下图所示。
![](http://img.blog.csdn.net/20150827000707147?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在上图中,上面一部分是object stack,它是一个数据结构意义上的栈,里面存储了一系列的对象,默认action对象处于栈顶。下面一部分是context map,它是一个Map,以键值对的形式存储actionContext的相关信息。
context map中存储的是一系列的Map,比较常见和重要的有:
(1)parameters: 该 Map 中包含当前请求的请求参数
(2)request: 该 Map 中包含当前 request对象中的所有属性
(3)session: 该 Map 中包含当前 session对象中的所有属性
(4)application:该 Map 中包含当前application 对象中的所有属性
(5)attr: 该 Map 按如下顺序来检索某个属性:request, session, application
其中的request、session和application在/article/1903961.html中已经有过涉及。
对value stack的简单分析就到此为止了,大家对此理解即可,重点是如何访问value stack中存储的内容。
这是我们下一节OGNL的主要内容。
value stack贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个 ValueStack 对象, 相当于一个数据的中转站,在其中保存当前 Action 对象和其他相关对象.
下面先将value stack直观的给大家展示一下。为了展示value stack,需要在action 转发到的jsp页面中引入struts2标签库<%@ taglib prefix="s" uri="/struts-tags" %>并添加<s:debug></s:debug>
这样在显示该jsp页面时,上方会有一个[debug]链接,打开就能看到value stack中的内容,如下图所示。
在上图中,上面一部分是object stack,它是一个数据结构意义上的栈,里面存储了一系列的对象,默认action对象处于栈顶。下面一部分是context map,它是一个Map,以键值对的形式存储actionContext的相关信息。
context map中存储的是一系列的Map,比较常见和重要的有:
(1)parameters: 该 Map 中包含当前请求的请求参数
(2)request: 该 Map 中包含当前 request对象中的所有属性
(3)session: 该 Map 中包含当前 session对象中的所有属性
(4)application:该 Map 中包含当前application 对象中的所有属性
(5)attr: 该 Map 按如下顺序来检索某个属性:request, session, application
其中的request、session和application在/article/1903961.html中已经有过涉及。
对value stack的简单分析就到此为止了,大家对此理解即可,重点是如何访问value stack中存储的内容。
这是我们下一节OGNL的主要内容。
相关文章推荐
- 传智Java常用API知识测试
- Java并发编程:Callable、Future和FutureTask
- 传智Java面向对象知识测试
- 传智Java基础知识测试
- IO流之字符流和字节流的使用_Java编程
- java中8种基本类型
- Java类的静态块の一
- java的wait和notify方法浅析
- Jenkins api java 调用
- DesignPattern_Java:Proxy Pattern
- Myeclipse中创建一个文件夹,在new时无法显示常用的文件
- Java多线程 -- 阻塞队列
- java集合类线程安全
- JAVA File转Byte[]
- java中的多生产者-消费者问题学习
- java泛型基础
- Java多线程 -- 信号量
- 【JavaWeb探究】细抠一下web.xml
- 解决Java中OutOfMemoryError的三种方法
- Struts2三种数据转移方式