-------------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
类名@静态方法(参数值)