ognl深度解析 (对象图导航语言)
来源:互联网 发布:制造业大数据方案 编辑:程序博客网 时间:2024/05/18 01:21
ognl深度解析 (对象图导航语言)
OgnlContext 继承与 map接口
1.根对象,不用#(只有一个根)
name
2.非根对象
#person
3.属性
#person.id
4.属性中某些类型所对应的方法
#person.name.toUpperCase().length()
5.某些类型所对应的静态方法
@java.lang.Integer@toBinaryString(10)--默认@@min(4,10)为[java.lang.Math]
6.生成list对象
new java.util.linkedList() 用ognl后得到[] 空的list
{'aa','bb','cc'} 用ognl后得到[aa,bb,cc] 的list
在ognl中集合和数组是一样的,
{'aa','bb','cc'}[2] or #list[2] 结果 cc
7.处理映射Map
#{'key1':'value1','key2':'value2'}['key2'] 结果 value2
8.过滤(filtering):获得原来集合的子集合-- 集合.{? 表达式}
#list.{? #this.length()>2} 判断list中每一个元素的长度大于2 结果是一个集合
#list.{? #this.length()>2}.size() 结果是集合的长度
获得集合中的第一个元素#list.{^ #this.length()>2} 结果 是一个集合(因为集合可能为空,为空时[]) 里面含有第一个元素
获得集合中最后一个元素#list.{$ #this.length()>2} 结果 是一个集合(因为集合可能为空,为空时[]) 里面含有最后一个元素
#this 相当于集合中的每个元素
9.投影 原集合的某些列,注意 结果是一个集合
#list.{name} 其中list里有person对象 对象里有id和name 结果 所有人名字集合
#list.{#this.name.length()<5?'helloworld':#this.name}长度大于5,显示name本身,否则显示helloworld
<s:iterator value="list.{name}"><s:property value="age"/><br></s:iterator>
10.值栈
struts2 中 根对象是值栈 ValueStack 栈中最顶层一定值action对象,例如<s:property value="username"> 从值栈里第一个action里找,不会去找别的action,不用加#
struts2 中 命名对象 parameters 用户请求的参数,request , session , application , attr(首先在当前页面找,按照所有范围,足个去查)
#request.username
struts2 中 静态方法@vs@method
底层实现原理 <%= ((OgnlAction)ActionContext.getContext().getValueStack().peek()).getList().get(0).getCat().getName()> --需要导包
(OgnlAction)ActionContext.getContext().getValueStack().peek()取值栈中第一个,第一个存储的是action,调用get、set方法 实现ognl
11.%
<s:property value="name"/> 中 value=“@” 其中@按照 ognl 解析
而 <s:a href="getList.action?id=%{#person.id}"></s:a> 中#person.id如果不加%{}会按照字符串解析
如果 在ognl解析里加上%{},解析时会忽略%{},不算错。
- ognl深度解析 (对象图导航语言)
- OGNL 对象图导航语言
- OGNL对象导航语言
- OGNL(对象图导航语言)基础了解
- struts第十四天--ognl表达式,对象图导航语言
- OGNL:Object Graph Navigation Language(对象图导航语言)
- 浅析struts2中的OGNL对象-图导航语言应用
- 框架之struts2----对象图导航语言:ognl表达式
- Ognl的对象导航语言相关用法
- 6、Struts2中的国际化、Ognl(对象图导航语言)表达式语言
- OGNL表达式常用用法Object Graph Navgation Laguage对象图导航语言
- OGNL——Object-Graph Navigation Language(对象图导航语言)
- 第四章 OGNL 对象-图形导航语言:深入浅出struts
- OGNL(Object-Graph Navigation Language):图形化对象导航语言
- OGNL语言解析
- S7.1_Struts2_OGNL OGNL对象导航图范例&OGNL方法调用范例还有集合访问的范例
- 第八天:对象图导航语言
- 深度解析String对象
- iOS 创建单例的两种方法
- 屏蔽android弹出的Title
- android ndk开发环境搭建(windows环境下)
- Backbone.js Wine Cellar 教程 – 第一部分:入门
- mk文件编写,项目配置样例
- ognl深度解析 (对象图导航语言)
- iOS将16进制颜色转成UIColor
- objc_msgSend (xcode)
- Bulk Insert命令详细 .
- Backbone.js Wine Cellar 教程 – 第二部分:CRUD
- 裁剪图片
- 图片缩放
- 图片旋转
- Backbone.js Wine Cellar 教程三:深层链接和应用程序状态