Struts2的数据结构
来源:互联网 发布:linux rpm yum 编辑:程序博客网 时间:2024/06/07 06:09
作为MVC框架,一个最主要的功能就是对请求中的数据进行存储和显示,Struts2将数据存储在值栈中。
ValueStack说明:
1.ValueStack是一个接口,在Struts2中使用OGNL表达式,实际上是使用实现了ValueStack接口的类OgnlValueStack。
2.ValueStack贯穿整个Action的生命周期。每个Action都拥有一个ValueStack对象。
3.Struts2把ValueStack对象保存在名为struts.valueStack的request域中。
获取值栈的三种方法:
<span style="white-space:pre"></span>ValueStack valueStack = ActionContext.getContext().getValueStack();ValueStack valueStack1 = ServletActionContext.getContext().getValueStack();ValueStack valueStack2 = (ValueStack) ServletActionContext.getRequest().getAttribute("struts.valueStack");值栈的内存图:
可以看出ValueStack包含两部分:context和root,root为对象栈,context为map栈。
root内存图:
context内存图:
其中context中的_root和root的内容是一样的。
下面让我们来看一下root中到底放了什么:
可以看出root是类CompoundRoot实现的,查看CompoundRoot的源码可知,root其实是一个ArrayList,而中图中也可以看出,其内存放了ValueStackAction和DefaultTextProvider,分别是当前Action和国际化支持的类。
而context中信息主要放在_values的table,里面一map形式存放了request、session和application等信息。
到此我们可以总结出值栈的完整结构:
值栈作为Struts2存储和显示数据的核心,熟悉其数据结构,才能掌握请求中数据的传输。
0 0
- Struts2的数据结构
- Struts2: 使用s:iterator标记输出Map、List、Array容器组合的数据结构
- [数据结构]数据结构的基本概念
- 【数据结构】:数据结构的基本概念
- struts2的%{ }
- struts2的%{ } # $
- Struts2的struts2.xml配置文件
- Struts2(1):Struts2的配置文件
- 【Struts2】①Struts2的入门
- Struts2-----3、Struts2的流程
- 【struts2】Struts2的运行流程
- 【Struts2】:Struts2的类型转换
- 【struts2】struts2的开发步骤
- 【struts2】Struts2的运行流程
- [Struts2]Struts2的文件上传
- struts2-struts2的基本配置
- 数据结构基础-数据结构的特性
- java数据结构-数据结构的概述
- 事件监听机制
- colour name
- 并查集(种类并查集)POJ1703Find them, Catch them解题报告
- poj 2826 一道神奇的水题,死活都过不了,等以后再看吧
- 给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
- Struts2的数据结构
- 位域
- 一个简单的PE感染病毒
- UIWebView的一些用法总结
- 把自己的python脚本打包上传到PYPI
- 设计模式原则
- 在传统行业努力着的互联网人
- Centos安装turn stun 服务器
- 无车日“首堵”又见爆堵,未来世界真将“天下无车”?