Struts2的OGNL

来源:互联网 发布:太原淘宝美工培训学校 编辑:程序博客网 时间:2024/05/22 06:25

-------------Struts2的OGNL--------------------
既然要访问数据,就必须有个东西装数据
    OGNL的装数据的东西叫ONGL Context或者Stack Context
    ------其实就是可以为一个MAP。
它里面的每个对象都应该有个名字,根据名字来访问。
 #对象名
   对象:
 1.application
 2.session
 3.ValueStack(root)
 4.request
 5.parameters
 6.arr(依次搜索page、request、session、application)
如果OGNL Context中有三个对象:foo、bar、test
#bar.abc -访问bar对象的getAbc()返回值
#test.xyz.abc.def -访问test对象的getXyz().getAbc().getDef()


OGNL COntext中有个根对象,访问时可以省略到对象名
如果OGNL Context中有三个对象:foo、bar、test但bar是根对象
bar.abc -访问bar对象的getAbc()返回值

OGNL可以直接创建list对象{a1、a2、a3、a4.......}

OGNL可以直接创建MAP对象#{key1:value1,key2:value2,key3,value3.....} 

OGNL还可以直接获取子集合
    person.cats.{? #this.age>2} ---获取person所有的猫中age大于2
    person.cats.{^ #this.age>2} ---获取person猫中age大于2的一个只
    person.cats.{$ #this.age>2} ---获取person猫中age大于2的最后一只

OGNL还支持直接调用静态成员
    ----前提是需要将sturts.ognl.allowStaticMethodAccess常量设置true才可以的
 类名@静态Field
 类名@静态方法(参数值)