Struts2学习笔记02
来源:互联网 发布:女生学电脑编程好吗 编辑:程序博客网 时间:2024/05/16 01:00
1. 利用Struts2标签+OGNL技术重构资费列表
1. OGNL技术的使用
a) 什么是OGNL
i. 源于ognl.jar工具包,全称:object graphics navigation language(对象图导航语言);
主要用于访问对象的数据和方法。
b) OGNL基本原理
i. OGNL工具主要由三部分组成,具体如下:
1. OGNL引擎
负责解析ONGL表达式,定位数据
2. Root根存储区(Object类型)
负责存储要访问的目标对象。
3. Context变量存储区(Map类型)
负责存放多个要访问的目标对象
c) *OGNL基本语法
i. 访问root区域对象基本语法(Obj对象的存储形式)
1. 访问简单数据“属性”例如:”name”
2. 访问数据或者List集合:“属性[0]”
例如“arr[0]”;
3. 访问Map集合:”属性[‘key’]”或二者”属性.key”。例如map.key或者map[‘key’];
注意:第3种方式使用的时候,最好不要传入单字符,例如设置key为‘a’,‘1’之类的,在底层获取的时候,会把单字符转为数值类型,导致空null出现,得不到value值。
4. 访问方法:“属性值.方法()”,
例如“list.size()”
5. 访问构造方法:“new 包名.方法名()”;
例如:“new java.util.Date()”
6. 访问静态成员:“@包名.类名@成员”
例如:“@java.lang.Math@PI”
7. 构建List对象:“{元素1,元素2}”
8. 创建Map对象:“#{key1:value1,key2:value2}”
ii. 访问Context区域对象基本语法(Context区域是Map集合形式,存储了键值对)
采用“#key”方式,获取值
例如:Ognl.getvalue(“#name”,map,root);
2. OGNL技术在Struts的使用
a) 在struts2中有一个ValueStack数据对象,该对象存储了请求相关的所有数据信息。例如request,session,application,action等
b) Struts2采用OGNL工具对ValueStack进行操作
i. Xwork中OGNL进行了部分改造
在xwork中将原来OGNL标准结构中root存储区改造成了一个栈结构。
当利用“属性”表达式访问时,先去站定对象寻找,没有再去找次栈顶寻找…..都没有找到的话,则返回空,底层封装了异常处理,不会报错。
ii. ValueStack结构(封装了OGNL引擎,root区域,Context区域)
1. root结构中Action对象放在栈顶,很有意义,基本上都是接收action请求
2. Map结构中存放如下对象;
Request, session , application , parameters , attr
iii. Struts2标签的使用
在JSP中,利用Struts2标签现实数据,需要为标签指定OGNL表达式,标签利用表达式定位ValueStack中的数据,进行相应操作。
1. debug标签:现实valuestack状态
2. iterator标签:循环集合元素
a) value属性:指定ognl
b) var属性:指定循环变量,会被存放到valueStack的context区域。该变量有count属性表示一共循环了多少个元素。
c) index属性表示当前循环的元素的索引
3. if…else…标签:判断分支
a) test属性:指定ognl
4. property标签:显示数据
5. date标签:将date类型的数据格式化输出
- Struts2学习笔记02
- Struts2 学习笔记02 Namespace
- struts2框架学习笔记02
- struts2框架学习笔记02
- struts2学习笔记--struts2配置
- Struts2学习笔记--安装struts2
- Struts2学习笔记02----第一个struts2应用程序
- Struts2学习笔记——02
- struts2.01学习笔记
- struts2学习笔记
- Struts2学习笔记1
- struts2.0 学习笔记
- struts2.01学习笔记!
- struts2学习笔记
- Struts2学习笔记1
- struts2 学习笔记
- Struts2学习笔记(1)
- struts2学习笔记(2)
- 123
- OpenCV学习笔记(26)自动识别OpenCV版本并添加依赖库
- C#_读取EXCEL文件的三种经典方法.
- 介绍一个C++的ORM工具ODB
- linux下的UART试验
- Struts2学习笔记02
- MySQL数据同步【双主热备】
- 小小经验
- 细谈Spring(一)spring简介
- C# 获取本机IP方法
- AWK
- 阿里巴巴任职职级
- 趋势
- 互联网的传统行业路途艰难