Struts2.1学习笔记_05

OGNL(Object-Graph Navigation Language)

 

1.访问值栈中的普通属性:
<s:property value="xxx"/>
<s:property value="xxx.xx"/>
直接写值栈中的键名称或加上属性。访问属性的前提是这个对象必须有get/set方法。
聚合关系的对象也可以访问或访问其属性。

 

2.访问对象的普通方法

如:
<s:property value="name.length()"/>
<s:property value="dog.wangwang()"/>
<s:property value="m()"/>

 

3.访问静态方法或属性

必须在配置文件中加入常量配置
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
访问静态方法,如:
<s:property value="@com.xx.xx.lei@fangfa()"/>

 

访问静态属性,如:
<s:property value="@com.xx.xx.lei@XXX"/>
都是@号加类全称+方法名或属性名。

 

访问Math类的静态方法:<s:property value="@@max(2,3)"/>

 

4.访问普通类的构造方法

如:
<s:property value="new com.xx.xx.User(8)"/>

 

5.访问集合

如:
访问List或数组:
<s:property value="users"/>
<s:property value="users[1]"/>

 

访问List中元素某个属性的集合:
<s:property value="users.{age}"/>就是在users集合中,拿出user的属性age,组成

一个新的集合。
<s:property value="users.{age}[0]"/>就是访问第一个元素。

 

6.访问Set,不能取下标,因为Set是无序的。

 

7.访问map:
访问Map中的某个元素
<s:property value="xxmap.keyname"/>
或<s:property value="xxmap['keyname']"/>
或<s:property value="xxmap[\"keyname\"]"/>

 

访问map中所有key:
<s:property value="xxmap.keys"/>

 

访问map中所有value:
<s:property value="xxmap.values"/>

 

访问容器的大小
<s:property value="xxmap.size()"/>
或<s:property value="xxmap.size"/>

 

8.投影:

投影(过滤):
<s:property value="users.{?#this.age==1}"/>
问号为正则表达式内容,就是只要是匹配的都包括。就是这个users集合,循环拿出每一个对象,看这个对象的age属性是否等于1的,组成一个

集合。如:
<s:property value="users.{?#this.age==1}.{age}[0]"/>拿出集合中第一项。
<s:property value="users.{?#this.age==1}.{age}"/>拿出集合中age的集合。

 

投影2:<s:property value="users.{^#this.age>1}"/>
小尖号代表头一个,就是拿出users过滤后的集合中的第一个user对象的集合,注意,是集合。

 

投影3:<s:property value="users.{$#this.age>1}"/>
$号代表尾一个,就是拿出users过滤后的集合中的最后一个个user对象的集合,注意,是集合。

 

9.用中括号访问值栈元素:
<s:property value="[0]"/>
就是访问值栈中,从栈顶开始查找元素。

你可能感兴趣的:(正则表达式,struts)