s:property 標籤——value屬性使用事項
阿新 • • 發佈:2019-02-14
簡單介紹
1)涉及問題:取值時什麼時候該加#,什麼時候不加?
2)介紹
Struts2中的property標籤
獲取值時,一般有兩種情況:
1)在獲取request/session/application/attr/parameters這五個範圍時,需要明確指定範圍,比如
2)如果取ValueStack中的值時,是不需要帶#的,可以直接取。
比如Action例項的屬性值是儲存在ValueStack中的,所以取Action中的屬性是不需要帶#號的。
然而,在使用<s:iterator id="it" value="attrName">時,後使用it去取物件屬性時,是需要加#號的。
注:<s:property>要正確獲取Action中的屬性值,必須在在action中設定了該屬性的setter/getter方法,否則它不會被攔截器處理。
value引數值介紹
value引數的型別是object,可以理解為這個預設是會解析成ognl表示式的。
比如需要輸入一個字串string
故value的值解析成OGNL表示式,在此表示式內,有些物件的值的使用與java程式碼相似,但不相同,以下取幾個例子
1)value為String物件時,一些常用的String子函式使用
在獲取List的大小時,可以使用其變數的size值,比如取List物件group的陣列長度
原文地址:http://blog.csdn.net/wenlele/article/details/6843067
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的陣列長度
3)value內還可以寫表示式,比如輸出一個整型變數page的+1值<s:property value="groups.size" />
<s:property value="page+1" />
原文地址:http://blog.csdn.net/wenlele/article/details/6843067