簡(jiǎn)單介紹
1)涉及問(wèn)題:取值時(shí)什么時(shí)候該加#,什么時(shí)候不加?
2)介紹
Struts2中的property標(biāo)簽
用于獲取ognlcontext對(duì)象中的屬性值,亦稱為數(shù)據(jù)標(biāo)簽。其中value的值為具體的屬性名稱。
獲取值時(shí),一般有兩種情況:
1)在獲取request/session/application/attr/parameters這五個(gè)范圍時(shí),需要明確指定范圍,比如
范圍前面需要帶#號(hào)才能正確獲取屬性值。
2)如果取ValueStack中的值時(shí),是不需要帶#的,可以直接取。
比如Action實(shí)例的屬性值是存儲(chǔ)在ValueStack中的,所以取Action中的屬性是不需要帶#號(hào)的。
然而,在使用時(shí),后使用it去取對(duì)象屬性時(shí),是需要加#號(hào)的。
注:要正確獲取Action中的屬性值,必須在在action中設(shè)置了該屬性的setter/getter方法,否則它不會(huì)被攔截器處理。
value參數(shù)的類型是object,可以理解為這個(gè)默認(rèn)是會(huì)解析成ognl表達(dá)式的。
比如需要輸入一個(gè)字符串string
注意,在value里面的字符串string外面加了單引號(hào),這樣不會(huì)將string解析成ognl表達(dá)式了。.
故value的值解析成OGNL表達(dá)式,在此表達(dá)式內(nèi),有些對(duì)象的值的使用與Java代碼相似,但不相同,以下取幾個(gè)例子
1)value為String對(duì)象時(shí),一些常用的String子函數(shù)使用
string.length()?//字符串長(zhǎng)度
string.substring(0,130)?//按起末位取子串
2)value為L(zhǎng)ist時(shí)
在獲取List的大小時(shí),可以使用其變量的size值,比如取List對(duì)象group的數(shù)組長(zhǎng)度
3)value內(nèi)還可以寫表達(dá)式,比如輸出一個(gè)整型變量page的+1值