既然要访识问数据,必须有个东西装数据。
OGNL的装数据的东西叫"Stack Context"(OGNL Context)
--------可以理解它相当于一个Map.
1.它里面的每个 对象,都应该有个名字,根据名字来访问。
# 对象名
假如OGNL Context中有3个对象:foo、bar、test
#bar.abc ---访问bar 对象的getAbc()返回值。
#test.xyz.abc.def -----访问对象的getXyz().getAbc().getDef()
2.OGNL Context中有3个对象:foo、bar、test,但bar是根对象。
abc.xyz.def ----访问bar.getAbc().getXyz().getDef()
3.OGNL可以直接创List对象:#{ele1,ele2,ele3,ele4......}
4.OGNL可以直接获取“子集合”
person.cats.{? #this.age >2} -----获取person所养的猫中age大于2的所有猫。
person.cats.{^ #this.age>2} ------获取person所养的猫中age大于2的第一个猫。
person.cats.{$ #this.age>2} -------获取person所养的猫中age中age大于2的最后一个猫。
6.OGNL还支持直接调用静态成员:
------需要将struts.ognl.allowStaticMethodAccess常量设置true才可。