OGNL知识
2013-10-31 21:34
169 查看
OGNL:对象图导航语言(Object Graph Navigation Language)
1.当我们想要获得值栈中的值时:
对于DomainModel来说,我们有两种方法来访问值栈中的Dm对象:
1.在URL中指定访问Dm中的set,get方法,只有传了,Dm才能在值栈中构造。 如:http..../...?DMclass.method
2.在Action中私有化Dm时new对象,这样他就会随着Acion的构造而构造。我们也可以在构造函数中传值,注意对应的构造函数需要在Dm中写出。
2.访问action的一般属性,方法:
利用“.”作为分割,直接输入action中的成员即可。
3.访问action的静态方法:
格式:@类名@方法或属性,如:<s:property value="@class...@method()"/>
但是注意,在struts2.1版本需要在配置文件中加入<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>才可访问静态方法。
4.访问集合:
例如list,list li=new arraylist(),我们可以用 "li"访问到list, 用“li.{0}”访问到下表为0的元素,用“li.{shuxing}”来访问属性集,用“li{0}.{shuxing}”来访问指定元素的指定属性。
5.投影(过滤):即过滤出符合条件的数据:
如需要过滤出user集合的符合条件的age属性:<s:property value="user.{?#age==1}.{age}"/>
过虑user集合的符合条件的age属性的第一个age集合:<s:property
value="user.{^#age>1}.{age}"/>
过虑user集合的符合条件的age属性的最后一个age集合:<s:property
value="user.{$#age>1}.{age}"/>
6.用“[]”直接访问:
用<s:property
value="[0]"/>将访问到值栈中自顶向下的所有object;
用<s:property
value="[1-...]"/>将访问到值栈中 的指定object。
1.当我们想要获得值栈中的值时:
对于DomainModel来说,我们有两种方法来访问值栈中的Dm对象:
1.在URL中指定访问Dm中的set,get方法,只有传了,Dm才能在值栈中构造。 如:http..../...?DMclass.method
2.在Action中私有化Dm时new对象,这样他就会随着Acion的构造而构造。我们也可以在构造函数中传值,注意对应的构造函数需要在Dm中写出。
2.访问action的一般属性,方法:
利用“.”作为分割,直接输入action中的成员即可。
3.访问action的静态方法:
格式:@类名@方法或属性,如:<s:property value="@class...@method()"/>
但是注意,在struts2.1版本需要在配置文件中加入<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>才可访问静态方法。
4.访问集合:
例如list,list li=new arraylist(),我们可以用 "li"访问到list, 用“li.{0}”访问到下表为0的元素,用“li.{shuxing}”来访问属性集,用“li{0}.{shuxing}”来访问指定元素的指定属性。
5.投影(过滤):即过滤出符合条件的数据:
如需要过滤出user集合的符合条件的age属性:<s:property value="user.{?#age==1}.{age}"/>
过虑user集合的符合条件的age属性的第一个age集合:<s:property
value="user.{^#age>1}.{age}"/>
过虑user集合的符合条件的age属性的最后一个age集合:<s:property
value="user.{$#age>1}.{age}"/>
6.用“[]”直接访问:
用<s:property
value="[0]"/>将访问到值栈中自顶向下的所有object;
用<s:property
value="[1-...]"/>将访问到值栈中 的指定object。
相关文章推荐
- 南阳理工OJ_两点距离
- 关于Windbg Local kernel debugging for Win7
- 搭建无限制权限的简单git服务器使用git-daemon脚本
- 用C语言获取任意文件的长度(可能大于2GB)
- it's never too late to start over again
- 差分磁盘(Differencing disks) 推荐
- Ubuntu 12.04 root用户登录设置
- poj1836 Alignment
- 后台模板
- Judy Array - Example
- 八数码问题
- extern "C"的作用
- 勘探决策支持系统的技术点
- 建立多人协作git仓库/git 仓库权限控制(SSH)
- struts2 18拦截器详解(五)
- UITextView 边框的设置
- java基础整理1
- glassfish--服务搭建
- Qt于win7下编译的程序在xp中运行中文乱码问题
- 创建ID3D11Device可能会遇到的问题,不能使用具体的IDXGIAdapter