s:property 用法

來源:互聯網
上載者:User

 s:property 用法

OGNL:Object Graph Navigation Language(對象圖導航語言)

1,訪問Action值棧中的普通屬性:

<s:property value="attrName"/>

2,訪問Action值棧中的對象屬性(要有get set方法):

<s:property value="obj.attrName"/>

<s:property value="obj1.obj2.attrName"/>

3,訪問值棧中對象屬性的方法

<s:property value="obj.methodName()"/>

4,訪問值棧中action的普通方法:

<s:property value="methodName()"/>

5,訪問靜態方法:

<s:property value="@com.softeem.LoginAction@methodName()"/>

6,訪問靜態屬性:

配置屬性檔案,允許ognl訪問靜態方法struts.ognl.allow...=true

<s:property value="@com.softeem.LoginAction@attrName"/>

7,訪問Math類的靜態方法:

<s:property value="@@min(9,7)"/>

8,訪問普通類的構造方法:

<s:property value="new com.softeem.User(2)"/>

9,訪問集合:

①list集合對象

<s:property value="listName"/>

②list集合中的某個元素

<s:property value="listName[1]"/>

③list中某個屬性的集合

<s:property value="listName.{field}"/>

④list中某個屬性集合的特定值

<s:property value="listName.{field}[0]"/>

⑤訪問set

<s:property value="setName"/>

⑥訪問set中某個元素

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

⑦訪問map

<s:property value="mapName"/>

⑧根據key訪問Map中的元素

<s:property value="mapName.username"/>

<s:property value="mapName['username']"/>

<s:property value="mapName[\"username\"]"/>

⑨訪問map中所有的key

<s:property value="mapName.keys"/>

10,訪問map中所有的values

<s:property value="mapName.values"/>

11,訪問map的大小

<s:property value="mapName.size()"/>

12,投影

<s:property value="listName.{?#this.age==1}"/>

<s:property value="listName.{^#this.age>1}"/>

<s:property value="listName.{$#this.age==1}"/>

<s:property value="listName.{$#this.age==1}.{age}==null"/>

[]:<s:property value="[0]"/>值棧中的對象

---------------------------------------

  訪問action中傳過來的對象:<s:property value="user"/>|${user }<br>

  訪問action中傳過來的對象中的屬性:<s:property value="user.username"/>|${user.username }<br>

   訪問action中傳過來的對象屬性類中的方法:<s:property value="user.getUsername()"/><br>

訪問action中傳過來的對象中的對象:<s:property value="user.group"/><br>

訪問action中傳過來的對象中的對象的屬性:<s:property value="user.group.gname"/> |

<s:property value="user.group.getGname()"/><br>

訪問action中的普通方法:<s:property value="getValue()"/><br>

訪問其他類中過的靜態方法:<s:property value="@com.softeem.pojos.User@printUser()"/><br>

   取到Math類中的方法:<s:property value="@@max(12,45)"/><br>

   訪問User類的構造方法:<s:property value="new com.softeem.pojos.User()"/><br>

   訪問list:<s:property value="users"/><br>

   擷取list的長度:<s:property value="users.size()"/><br>

   取到list中第一個元素:<s:property value="users.get(0)"/>|<s:property value="users[1]"/><br>

取到list中username屬性的集合:<s:property value="users.{username}"/><br>

根據key取到map中的元素:<s:property value="userMap.張三"/>|

<s:property value="userMap['三毛']"/><br>


⑨訪問map中所有的key:<s:property value="userMap.keys"/><br>

10,訪問map中所有的values:<s:property value="userMap.values"/><br>

11,訪問map的大小:<s:property value="userMap.size()"/><br>


12,投影:<s:property value="users.{?#this.username=='張三'}.{password}"/><br>

 

13,取到list中滿足條件的開頭的一個元素的密碼:<s:property value="users.{?#this.username='張三'}.{password}[0]"/><br>

14,取到list中滿足條件的最後的一個元素的密碼:<s:property value="users.{$#this.username='張三'}.{password}"/><br>

15,<s:property value="users.{$#this.username=='admin'}.{group}==null"/><br>

16,從棧頂開始取,一直取到指定的位置(0表示棧底):<s:property value="[1]"/>

   <s:debug></s:debug>

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lfp0202/archive/2011/02/16/6188484.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.