struts2 ongl使用

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="@com.netshuai.action.ManagerAction@get()" />
以上爲調用非值棧中的靜態方法

調用JDK中類的靜態方法<s:property value="@java.lang.Math@floor(32.56)" />
上例也可寫成<s:property value="@@floor(32.56)" />,省略前面的類則默認使用java.lang.Math類,其他類不可省略

調用普通類中的靜態屬性<s:property value="@com.netshuai.model.Address@city" />
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="@vs@get()"/>,vs也可寫做vs1
調用值棧中第二個action的靜態方法get()<s:property value="@vs2@get()"/>

將一個對象放入值棧
ActionContext.getContext().getValueStack().push(user);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章