Struts2学习笔记(六):值栈(value Stack)浅析

来源:互联网 发布:js面向对象什么意思 编辑:程序博客网 时间:2024/05/17 09:22

值栈(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中的内容,如下图所示。



在上图中,上面一部分是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在http://blog.csdn.net/jiajia333666/article/details/48006857中已经有过涉及。

对value stack的简单分析就到此为止了,大家对此理解即可,重点是如何访问value stack中存储的内容。

这是我们下一节OGNL的主要内容。


0 0
原创粉丝点击