您的位置:首页 > 其它

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: