1. 程式人生 > >struts2中s:iterator 標籤的使用詳解 及 OGNL用法

struts2中s:iterator 標籤的使用詳解 及 OGNL用法

User物件屬性獲取
如User中有username和password欄位
獲取username屬性<s:property value="user.username" />
獲取password屬性<s:property value="user.password" />
若User中又包含定義了address物件,address物件中包含有addr屬性,則可以這樣訪問
獲取addr屬性<s:property value="user.address.addr" />
若User中還包含一個get()的普通方法,可以這樣呼叫
<s:property value="user.get()" />
以上是呼叫值棧中物件的普通方法,user為值棧中的物件
呼叫action中的靜態方法get(),普通方法不能直接呼叫
<s:property value="@
[email protected]
()" />
以上為呼叫非值棧中的靜態方法
呼叫JDK中類的靜態方法<s:property value="@[email protected](32.56)" />
上例也可寫成<s:property value="@@floor(32.56)" />,省略前面的類則預設使用java.lang.Math類,其他類不可省略
呼叫普通類中的靜態屬性<s:property value="@[email protected]" />
address中的city靜態屬性要用public宣告
呼叫普通類的構造方法,如構造方法為
public User(String username)
{
      this.username=username;
}
呼叫方法為<s:property value="new com.netshuai.model.User('hello').username" />,則返回username值為hello
獲取List<s:property value="list" />
獲取List中的某一個元素<s:property value="list[0]" />
獲取List的大小<s:property value="list.size" />
獲取Set<s:property value="set" />
無法獲取Set中的某一個元素,因為Set沒有順序
獲取Map<s:property value="map" />
獲取Map中所有key的值<s:property value="map.keys" />
獲取Map中所有value的值<s:property value="map.values" />
獲取Map中的某一個元素<s:property value="map['k1']" />
獲取List所有物件<s:property value="listObject" />,需要重寫toString()方法才能正常顯示物件的值 
利用投影獲取List中所有物件的username屬性<s:property value="listObject.{username}" />
利用投影獲取List中第一個物件的username屬性<s:property value="listObject.{username}[0]" />
利用選擇獲取List中年齡大於30的物件<s:property value="listObject.{?#this.age>30}" />
利用選擇獲取List中年齡大於30的物件的username<s:property value="listObject.{?#this.age>30}.{username}" />
利 用選擇獲取List中年齡大於30的第一個物件的username<s:property value="listObject.{?#this.age>30}.{username}[0]" />或<s:property value="listObject.{^#this.age>30}.{username}" />
利用選擇獲取List中年齡大於30的最後一個物件的username<s:property value="listObject.{$#this.age>30}.{username}" />
獲取parameters中的屬性<s:property value="#parameters.name" />
獲取request中的屬性<s:property value="#request.name" />
獲取session中的屬性<s:property value="#session.name" />
獲取application中的屬性<s:property value="#application.name" />
<s:property value="#attr.name" />按順序遍歷上面四個物件,然後返回首先找到的值
%{}可以取出存在值堆疊中的Action物件,直接呼叫它的方法,如%{getText('key')}可以取出國際化資訊
${}可以用在國際化資原始檔中和struts2配置檔案中
使用top獲取值棧中第二個物件<s:property value="[1].top.user"/>
使用top獲取值棧中第二個物件的屬性<s:property value="[1].user"/>
呼叫值棧中action的靜態方法get()<s:property value="@
[email protected]
()"/>,vs也可寫做vs1
呼叫值棧中第二個action的靜態方法get()<s:property value="@[email protected]()"/>
將一個物件放入值棧
ActionContext.getContext().getValueStack().push(user);