Struts2的值栈-OGNL
来源:互联网 发布:小白源码 编辑:程序博客网 时间:2024/05/02 00:10
1、Struts2的值栈
1)使用EL的 ${productName}读取的productName值, 实际上该值不在request等域对象中,而是从值栈中获取的。
2)ValueStack:
I. 可以从ActionContext中获取值栈对象。
II.值栈分为两个逻辑部分:
> Map栈:实际上是OgnlContext类型,是个Map,也是对ActionContext的一个引用,里面保存了各种Map:
requestMap,sessionMap,applicationMap,parametersMap,attr
> 对象栈:实际上是CompoundRoot类型,是一个ArrayList定义的栈,里面保存着和Action实例相关的对象,
是一个数据结构意义上的栈。
2、Struts2利用 s:property 标签和 OGNL表达式来读取值栈中的属性值;
值栈中的属性值:
> 对象栈:对象栈中某一个对象的属性值
I.读取对象栈中的对象属性:
Object.propertyName; Object['propertyName']; Object["propertyName"]
II.引用对象栈里的对象
ObjectStack 里的栈顶对象可以用 [0] 来引用, 它下面的那个对象可以用 [1] 引用;
例如:要读取栈顶对象的message属性:[0].message
[n] 的含义是从第 n 个开始搜索, 而不是只搜索第 n 个对象;
若从栈顶对象开始搜索, 则可以省略下标部分
III.结合s:property 标签:
<s:property value="[0].message" /> 等价于 <s:property value="message" />
> Map栈:request,session,application的一个属性值或一个请求参数的值。
I.读取Map栈中的对象属性:
#Object.propertyName; #Object['propertyName']; #Object["propertyName"]
3、默认情况下,Action对象会被Struts2自动的放入到值栈的栈顶。
<%@ taglib prefix="s" uri="struts-tags" %>
<s:debug></s:debug>: 调试信息显示;
0 0
- Struts2的值栈-OGNL
- 关于struts2的值栈以及OGNL
- Struts2-值栈和OGNL
- struts2--值栈以及OGNL
- Struts2 值栈和ognl
- Struts2-OGNL与值栈
- Struts2 值栈和OGNL
- 关于struts2里的ognl与值栈
- Struts2中关于值栈和OGNL表达式的理解
- Struts2的OGNL
- Struts2 OGNL的增强
- struts2的OGNL表达式
- struts2的OGNL表达式
- 關於Struts2的OGNL
- 關於Struts2的OGNL
- Struts2的OGNL
- struts2 OGNL # % $的使用
- struts2的ognl学习
- SQL Server 数据库 学习笔记
- 04 过程抽象和返回一个值的函数---小结
- Android GridView之添加分隔线,动态设置高度,实现高度自适应,并解决第一个item不显示的问题
- uc/os II读书笔记(1)
- 文章标题
- Struts2的值栈-OGNL
- [BZOJ2064]分裂(状压dp)
- 服务器状态码详解
- Android控件之-------RatingBar(学习笔记)
- 面试中的排序算法总结
- java Pull解析XML
- Python 基础知识
- Linux yum 命令
- 源码安装redis3.2.3并注册为系统服务