訪問值棧中的action的普通屬性:username = <s:property value="username"/>
訪問值棧中對象的普通屬性(get set方法):
<s:property value="user.age"/>
<s:property value="user['age']"/>
<s:property value="user[""age""]"/>
wrong: <%--<s:property value="user[age]"/>--%>
訪問值棧中對象的普通屬性(get set方法):
<s:property value="cat.friend.name"/>
訪問值棧中對象的普通方法:<s:property value="password.length()"/>
訪問值棧中對象的普通方法:<s:property value="cat.miaomiao()" />
訪問值棧中action的普通方法:<s:property value="m()" />
訪問靜態方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/>
訪問靜態屬性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/>
訪問Math類的靜態方法:<s:property value="@@max(2,3)" />
訪問普通類的構造方法:
<s:property value="new com.bjsxt.struts2.ognl.User(8)"/>
訪問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"/>
訪問Set:<s:property value="dogs"/>
訪問Set中某個元素:<s:property value="dogs[1]"/>
<!--set是沒有順序的,所以取下標值是沒有意義的-->
訪問Map:<s:property value="dogMap"/>
訪問Map中某個元素:<s:property value="dogMap.dog101"/>
<s:property value="dogMap['dog101']"/>
<s:property value="dogMap[""dog101""]"/><!--取出key為dog101的值-->
訪問Map中所有的key:<s:property value="dogMap.keys"/>
訪問Map中所有的value:<s:property value="dogMap.values"/>
訪問容器的大小:<s:property value="dogMap.size()"/>
<s:property value="users.size"/> <!--不加ku9ohao也可以訪問-->
投影(過濾):<s:property value="users.{?#this.age==1}[0]"/><!--格式固定,this指循環過程中的每一個對象。取出users里age等于1的集合里面的第一個元素-->
投影:<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"/><!--查看age>1的user的age是否為空-->
[]:<s:property value="[0].username"/>
<!--指value stack棧頂的那個Action,因為action在棧頂。0值value stack從上往下數的第幾0個元素 -->
<!--[0]代表action的位置,而不是action那個對象,[0]代表從0往下數到棧底的對象的集合。-->
<!--[0].username,如果有多個action,在第一個action里找不到[0].username,會往下找-->