文章轉載自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"/>