OGNL语法

OGNL 表达式中最基本的元素是导航链, 一般简称为"链". 最简单的链包括以下部分:

表 3.1. OGNL 表达式元素

Expression 表达式元素示例
属性名比如上面的例子中提到的 name 和 headline.text
方法调用hashCode() 返回当前对象的hash code
数组索引listeners[0] 返回当前对象的listeners列表中的第1项

 

所有的OGNL表达式都使用当前对象环境?来进行计算, 而链只需要将前一部分的计算结果当作当前对象, 就可以计算出下一部分的结果. 链的长度完全可以照你的需求来任意扩展. 比如, 下面这个链:

name.toCharArray()[0].numericValue.toString()

表达式按照下面的步骤来进行计算:

  • 从初始对象(或者称为根对象)中取得name属性. (初始对象由使用者通过OGNL context提供给OGNL?)

  • 在上一步的结果(String对象)上, 调用toCharArray()方法

  • 在上一步的结果(字符数组)中, 取得第1个(索引为0)字符

  • 取得字符的numericValue属性. (字符被解释为一个Character对象, 而且Character类拥有一个名为getNumericValue()的方法)

  • 在上一步的结果(Integer对象)上, 调用toString()方法. 表达式的最终计算结果是一个String, 它由最后那个toString()方法调用返回.

注意, 上面的例子只能用于从对象中取得某个值, 而不是设定某个值. 将上面的表达式传递给 Ognl.setValue() 方法, 将导致一个 InappropriateExpressionException 例外被抛出, 因为链中的最后一个元素, 既不是属性名, 也不是数组索引.

上面这一点点语法已经足够完成你最常见的那些需求了.

转载于:https://www.cnblogs.com/xuedexin/articles/5661325.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值