标签:
OGNL全称为Object-Graph Navigation Language,可译为对象图导航语言。此处介绍的OGNL表达式内容,仅限于在struts2标签中应用,形式如下:
<s:property value="xxx" />
以下为列举的一些应用形式:
1.访问值栈中action的普通属性:
<s:property value="username" />
2.访问值栈中对象的属性(setter getter方法):
<s:property value="user.age" />
<s:property value="cat.friend.name"/>
3.访问值栈中action的普通方法:
<s:property value="m()"/>
4.访问值栈中对象的普通方法:
<s:property value="password.length()"/>
<s:property value="cat.miaomiao()"/>
5.访问静态方法:
<s:property value="@com.ognl.S@s()"/>
静态属性:
<s:property value="@com.ognl.S@STR"/>
Math类静态方法:
<s:property value="@@max(2,3)"/>
6.访问普通类的构造方法:
<s:property value="new com.ognl.User(8)"/>
7.访问List:
<s:property value="users" />
List中某元素:
<s:property value="users[1]" />
List中某元素某个属性的集合:
<s:property value="users.{age}" />
List中某元素某个属性的集合的特定值:
<s:property value="users.{age}[0]" />
或
<s:property value="users[0].age" />
8.访问set:
<s:property value="dogs" />
注意set是无序的,以下方式并不能取到值
<s:property value="dogs[1]" />
9.访问Map中某一元素:
<s:property value="dogMap.dog10" />
<s:property value="dogMap[‘dog10‘]"/>
<s:property value="dogMap[\"dog10\"]"/>
Map中所有key或value:
<s:property value="dogMap.key" />
<s:property value="dogMap.value" />
10.投影:
<s:property value="users.{?#this.age==1}.{age}"/>
<s:property value="users.{^#this.age>1}.{age}"/>
<s:property value="users.{$#this.age>1}.{age}"/>
<s:property value="users.{$#this.age>1}.{age}==null"/>
标签:
原文地址:http://www.cnblogs.com/denisechen/p/4657424.html