您的位置:首页 > 编程语言 > Java开发

struts2系列学习笔记(12)---------------OGNL

2011-01-30 10:58 435 查看
OGNL的全称是Object Graph Navigation Language(对象图导航语言),是一种强大的表达式语言.

1.OGNL表达式

OGNL表达式的基础单元是导航链(navigation chain),通常简称为"链(chain)",由以下部分组成:

1)属性名

2)方法调用

3)数组索引

2.常量

OGNL支持的常量类型如下所示:

1)字符串常量:既可以用单引号也可以用双引号来界定,但是如果是单个字符的字符串则必须用双引号来界定

2)字符常量:用单引号引起来的单个字符

3)数值常量:后缀为b或者B表示BigDecimal;后缀为h或者H表示BigInteger

4)布尔常量

5)null常量

3.操作符

除了与java支持的操作符相同的以外,还支持如下操作符:

1)逗号(,)或序列操作符: 整个表达式可以包括多个独立的表达式,各个表达式中间用逗号分割,整个表达式的结果为最后一个独立表达式的结果.

2){}操作符:用于创建列表,列表中各元素用逗号分割

3)in 和 not in 操作符:用于判定值是否在某个集合中

4.调用构造器创建对象

与java类似,但是new后面的类名必须是完整的包名和类名

5.调用方法

1)静态方法:

@package.class@method(args)

注:如果是java.lang.Math类则可以省略类名 @@method(args)

2)getXXX方法

对象.xxx

注:如果对象为上下文根对象,则可以省略对象部分直接写为xxx

6.静态属性

@package.class@field

7.对集合进行操作

1)创建列表 {元素1,元素2.....}

2)创建数组与java相同

3)创建Map

(1)#{key1:value1,key2:value2,...}

(2)#@package.class@{key1:value1,key2:value2,...}

4)操作集合OGNL使用的伪属性:

List,Set,Map : size,isEmpty

List: iterator

Map:keys,values

Set:iterator

Iterator:next,hasNext

Enumeration:next,hasNext,nextElement,hasMoreElements

8.投影(projection)

对集合中每一个元素调用相同的方法,或者抽取相同的属性,并将结果保存为一个新的集合

9.选择(selection)

从集合众选择某些元素,并将结果保存到新的集合中

选择中的3个特殊符号:

?-------选取匹配选择逻辑的所有元素

^------选取匹配选择逻辑的第一个元素

$------选取匹配选择逻辑的最后一个元素

10.lambda表达式

语法: :[...]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: