Struts2学习笔记(三)——ognl
来源:互联网 发布:金山快译怎么汉化软件 编辑:程序博客网 时间:2024/05/23 20:11
ognl ——Object-Graph Navigation Language 对象
对象图导航语言
是Struts2默认的表达式语言,开源,功能更强大
1)存取对象的属性,调用对象的方法,访问静态方法和属性
2)访问值栈(value Stack)和堆栈(Stack Context)
3)操作集合对象
4)支持赋值,运算操作,字段类型转化等
值栈(value Stack)在action中必须封装get/set方法
<s:property value="stu.name"/> (对象名.属性名)
在内存空间中存放数据
堆栈 Stack Context :
<s:property value="#request.name"/> (通过#来访问堆栈中的数据)
request、session、application、parameters等的值一般存放在堆栈中。
其中#attr 为在所有的属性范围中获取值,依次搜索request > session > application。
ognl中,进行List构造方法:{1,2,3}[0] —— 笔记上的,不知道是否正确??
直接构造Map:
#{'first':'zhangsan','second':'lisi'}
#{'first':'zhangsan','second':'lisi'}['first']
#{'first':'zhangsan','second':'lisi'}.first
ognl
1)访问List集合:(像数组一样进行访问) 属性名[0]
访问方法:属性名.方法名()
2)访问Map
map.put("a1",new Student("x","a"));
<s:property value="map['a1']" /> 打印student对象
<s:property value="map.get('a1')" />
<s:property value="map.a1" />
3)访问Set:
TreeSet<> set = new TreeSet<>(); (有序二叉树) ——>只能用iteartor()进行遍历
set.add(new Student("boy","F")); ——实体类,要实现Comparble接口 必重写compare 方法
<s:property value="set.toArray()[0]" />
4)访问静态方法和属性
需于struts.xml中设置
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<s:property value="@java.lang.Math@PI" />
<s:property value="@@PI" /> (效果同上,当调用的是java.lang.Math方法时,可直接省略)
ognl 投影、过滤
投影:选择集合中每个元素的相同属性组成新的集合
过滤:过滤满足选择条件的集合元素
{?#this.age > 30} 所有匹配
{^#this.age > 30} 第一个
{$#this.age > 30} 最后一个
ognl变为字符串
<s:property value="'<span>Hello</span>'" escapeHTML="false" /> 不显示标签,缺省值为true
字符串转换为ognl:
<s:url value="%{#map['key1']}" />
不用%{} 括起来会输出#map['key1']
用了 会被当做ognl
%{} 设置动态的值,告诉标签的处理类,该字符串按照ognl来处理
map值,都用#
- Struts2学习笔记(三)——ognl
- Struts2学习(三)—OGNL
- Struts2学习笔记——OGNL表达式
- struts2学习笔记(七)——OGNL
- Struts2学习笔记(OGNL)
- 【SSH】Struts2学习(三)OGNL、OGNL与Struts2结合
- struts2学习笔记----OGNL
- Struts2学习笔记(十) OGNL
- struts2学习笔记(7)------------ognl表达式
- Struts2学习笔记(九) OGNL
- struts2 - ognl表达式 学习笔记
- struts2 - ognl表达式 学习笔记
- OGNL+标签---struts2学习笔记
- 【Struts2学习笔记(13)】Struts2中OGNL详解
- struts2学习三(OGNL和ValueStack值栈)
- struts2学习(15)——ognl表达式
- Struts2学习——1300OGNL入门
- struts2学习笔记(五)值栈与ognl
- PAT-数字黑洞
- 逆波兰表达式
- javaweb基于spring MVC的上传下载(上)
- InstallShield Limited Edition 打包软件安装包教程
- PAT-组个最小数
- Struts2学习笔记(三)——ognl
- 最长上升子序列
- pe格式的Image boot flow
- storm 常用类
- Ubuntu 16.10 安装 TeamViewer
- mysql 索引 + Linux+ web服务器
- 后缀数组
- 道家
- python3+PyQt5实现使用剪贴板做复制与粘帖