二.属性引用 OGNL 第4章. 表达式
OGNL在处理属性引用时, 会根据对象类型的不同而执行不同的动作.
对于Map对象的属性引用, 会作为以属性名为key的一次元素查找或元素存储操作.
对于List对象或数组, 数值型的属性引用会作为以属性名(即数值)为索引的一次元素访问操作, 字符串型的属性引用会与普通对象同样的方式处理.
普通对象(也就是除Map, List, 数组之外的一切对象)只能处理字符串型的属性引用,(只能处理String??)
如果对象拥有对应的"get"和"set"方法(或"is"和"set"方法), 则调用这些方法. 如果没有这样的方法, 则直接访问与属性同名的域.
注意, 这里出现了新的术语. 属性"名"可以是任意类型而不仅仅是字符串, 但是要引用字串型以外的属性名, 你必须使用我们称为"索引"的机制. 比如, 为了取得数组长度, 可以使用以下表达式:
array.length
但要数组中取得索引为0的元素, 必须使用这样的表达式:
array[0]
注意, Java集合(Collection)会有一些特殊的属性与它关联. 关于这些属性请参见小节: 供集合使用的伪属性
孜孜不倦,必能求索;风尘仆仆,终有归途。