现在的位置: 首页 > 综合 > 正文

struts2中ognl(Object Graph Navigation Laguage)的使用

2017年12月05日 ⁄ 综合 ⁄ 共 1510字 ⁄ 字号 评论关闭

文章转载自http://honly-java.iteye.com/blog/1608139

一,访问普通的属性和方法

1,访问值栈中的action的普通属性值

<s:property value="name"/>

 

2,访问值栈中对象的普通属性(get set方法)

user.xxx只有传,才会构造,

想初始化domain model,

可以自己new,User=new User();Use u = new User(9);

也可以传参数值,?user.age=9

但这时候需要保持参数为空的构造方法public User(){......}

<s:propery value="user.age"/>

 

3,访问值栈中对象的普通方法  password.length()

 

4,访问值栈中对象的普通方法  cat.miaomaio()

 

5,访问值栈中action的普通方法  m()

 

二,访问静态的属性和方法

 

1,访问静态的属性

@类名.@属性

 

2,访问静态的方法

@类名.@方法名

 

3,访问Math类的静态方法:

<s:property value="@@max(2,3)" />

 

三,访问普通类的构造方法:

访问普通类的构造方法:<s:property value="new com.struts2.ognl.dao.User(8)"/>

 

四,访问集合类

 

    访问List:<s:property value="users"/><br/>

访问List中某个元素:<s:property value="users[1]"/><br/>

访问List中元素某个属性的集合:<s:property value="users.{name}"/><br/>

访问List中元素某个属性的集合中的特定值:

<s:property value="users.{name}[0]"/> | <s:property value="users[0].name"/><br/>

访问Set:<s:property value="dogs"/><br/>

访问Set中某个元素:<s:property value="dogs[1]"/><br/>

访问Map:<s:property value="dogMap"/><br/>

访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/><br/>

访问Map中所有的key:<s:property value="dogMap.keys"/><br/>

访问Map中所有的value:<s:property value="dogMap.values"/><br/>

访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> <br/>

 

五,投影(过滤)

 

投影(过滤):<s:property value="users.{?#this.age==1}[0]"/>

投影:<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"/>


六,通过[]访问

[]:<s:property value="[0]"/><br/>

<s:property value="[0].user.name"/>

【上篇】
【下篇】

抱歉!评论已关闭.