OGNL

 

OGNL

 

1,   OGNL 是对象导航语言.

2,   OGNL 存在一个唯一的一个根对象。

3,   OGNL语法:

Public class Dog

{

         Private String name

         Private String colour

         Private Pserson pserson

         Public void setNameString name

{

         This.name=name

}

Public String getName()

{

         Return name

}

 

其它Getset 方法略….

}

Public class Pserson

{

         Private String name

         Private String sex

         Public void setNameString name

{

         This.name=name

}

Public String getName()

{

         Return name

}

 

其它Getset 方法略….

}

4,   如果访问的是唯一的一个跟对象,那么直接访问其中的属性即可。如:”name” 那么访问的将是Pserson类中的name属性,如果访问的不是根对象,则需要在前面加上一个“#”,并在加上类名,如:“#Dog .name”访问的是Dog类中的name属性,根对象也可以加上“#”号访问,如:“#Pserson.name

5,   OGNL 支持对象导航, 如:“#dog.pserson.name”访问的是Pserson类中的name属性

6,   如果想访问对象的方法这直接加上方法名字即可,如:“name.toString()”访问的是Pserson类中的name属性的toString()方法。当然你还可继续导航下去,如:

7,   name.toUpperCase().length()”将name属性转换为大写然后得到其长度。

8,   如何访问静态方法或静态属性,语法格式:@类的全称@ 方法,如:@java.lang.Integer@toBinaryString(10) 返回102进制数1010 , 访问静态属性,@java.lang.Integer@MAX_VALUE。“@@min6.10)” 其中这种语法比较特殊,@@中间没有类名,在OGNL中如果出现这种格式,这么默认是java.lang.Math类。

9,   如何创建集合跟访问集合,语法:“{‘a’,’b’,’c’,’d’,……}”,如:“{‘a’,’b’,’c’,’d’ }”创建的就是包含a,b,c,d 4个元素的集合。那么我们来看看如何访问集合,OGNL中它把集合看成数组,所以我们可以用访问数组的方法来访问集合。如:{‘a’,’b’,’c’,’d’ }[0]访问的是集合中的第一个元素。List lists=new ArrayList() list.add(“1”)  list.add(“2`”)  list.add(“3`”) 现在list集合有3个元素,如果要访问第二个元素,#lists[1]”得到的是”2”

10,我们再来看看如果访问数组,在前面已经说话OGNL把集合当做数组,所以获取数组元素跟获取集合一样。

11,如何创建Map,语法:”{‘key1’:’value1’,”key2”:”value2” ,”key3”:”value4”,”Kn”:”Vn”}“。那么如何访问Map”{‘key1’:’value1’,”key2”:”value2” ,”key3”:”value4”,”Kn”:”Vn”}[key1..n] :”{‘key1’:’value1’,”key2”:”value2”,”key3”:”value4”,”Kn”:”Vn”} [key2] ”访问的得到的是value2值。

12,OGNL的过滤跟投影,过滤 ,语法:”#collction.{? 表达式}” 该表达式返回符合条件的集合,如:List lists=new ArrayList() list.add(“1”);  list.add(“2’”) ; list.add(“3`”)执行”#lists.{? #this.name.length()>10}返回的当前集合中存放的对象的name属性长度>10的对象 的集合,注意其中 #this 代表集合中每次循环的对象(当然OGNL是没有循环的,OGNL在解释该表达式时 隐式的遍历了集合,#this 表示每次遍历集合获得的对象). 获取过滤集合中的第一个元素 语法:”#collction.{^ 表达式}” ,获取过滤集合中的最后一个元素 语法:”#collction.{$ 表达式}”

13,投影 语法:”#collction.{表达式}” 如:List psersons=new ArrayLit(), persons.addnew Person(); persons.addnew Person(); persons.addnew Person())那么执行“#lists.{name}” 返回的结果是 包含3Pserson对象的集合, Pserson对象中只存在name属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值