s:property 標籤——value屬性使用事項

簡單介紹
1)涉及問題:取值時什麼時候該加#,什麼時候不加?


2)介紹
Struts2中的property標籤
<s:property value="...."/>
用於獲取ognlcontext對象中的屬性值,亦稱爲數據標籤。其中value的值爲具體的屬性名稱。


獲取值時,一般有兩種情況:
1)在獲取request/session/application/attr/parameters這五個範圍時,需要明確指定範圍,比如
<s:property value="#request.屬性名" />
範圍前面需要帶#號才能正確獲取屬性值。


2)如果取ValueStack中的值時,是不需要帶#的,可以直接取。
比如Action實例的屬性值是存儲在ValueStack中的,所以取Action中的屬性是不需要帶#號的。
然而,在使用<s:iterator id="it" value="attrName">時,後使用it去取對象屬性時,是需要加#號的。

注:<s:property>要正確獲取Action中的屬性值,必須在在action中設置了該屬性的setter/getter方法,否則它不會被攔截器處理。


value參數值介紹
value參數的類型是object,可以理解爲這個默認是會解析成ognl表達式的。

比如需要輸入一個字符串string
<s:property value="'string'">
注意,在value裏面的字符串string外面加了單引號,這樣不會將string解析成ognl表達式了。.

故value的值解析成OGNL表達式,在此表達式內,有些對象的值的使用與java代碼相似,但不相同,以下取幾個例子

1)value爲String對象時,一些常用的String子函數使用
string.length() //字符串長度  
string.substring(0,130) //按起末位取子串
2)value爲List時
在獲取List的大小時,可以使用其變量的size值,比如取List對象group的數組長度
<s:property value="groups.size" />
3)value內還可以寫表達式,比如輸出一個整型變量page的+1值
<s:property value="page+1" />

原文地址:http://blog.csdn.net/wenlele/article/details/6843067
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章