jimingminlovefly

          統(tǒng)計(jì)

          最新評(píng)論

          struts2.0的list、listKey和listValue屬性

          list、listKey和listValue屬性對(duì)radio、combobox、select、checklist、doubleselect等標(biāo)簽來(lái)說(shuō)非常重要。
                我們可以用一組radio標(biāo)簽來(lái)提供一組選項(xiàng)。例如,下面這些HTML輸入標(biāo)簽將呈現(xiàn)為如圖5-5所示的一組單選按鈕。



          正如你看到的那樣,這組單選按鈕由一組值(1、2、3)和一組行標(biāo)(Atlanta、Chicago、Detroit)構(gòu)成,它們之間的鍵/值對(duì)應(yīng)情況如下所示:

          select元素也可以用來(lái)提供一組選項(xiàng)。下面的select元素(如圖5-6所示)能夠提供與剛才那組單選按鈕一樣的選項(xiàng)。


          注意     在select元素里,value屬性是可選的。如果沒(méi)有給出這個(gè)屬性,在某個(gè)選項(xiàng)被選中時(shí),該選項(xiàng)的行標(biāo)將作為select元素的值被發(fā)送到服務(wù)器。從理論上講,radio元素的value屬性也是可選的。可是,如果不給出value屬性,單選按鈕被選中時(shí)的值將是“on”而不是相應(yīng)的radio元素的 label屬性值,這無(wú)疑會(huì)讓同一個(gè)表單里的多個(gè)radio元素難以區(qū)別。因此,在使用radio元素的時(shí)候往往必須給出它們的value屬性。

          本節(jié)解釋了list、listKey和listValue屬性在radio、select 和其他用來(lái)提供一組選項(xiàng)的標(biāo)簽里的使用方法。在使用這些標(biāo)簽時(shí),你們需要提供一些鍵/值對(duì)作為那些選項(xiàng)的來(lái)源。在這3個(gè)屬性當(dāng)中,list屬性是必不可少的,另外兩個(gè)屬性是可選的。我們可以把一個(gè)String、一個(gè)數(shù)組、一個(gè)java.util.Enumeration、一個(gè) java.util.Iterator、一個(gè)java.util.Map或一個(gè)Collection賦值給list屬性,這個(gè)值對(duì)象既可以放在一個(gè)動(dòng)作對(duì)象里,也可以放在當(dāng)前會(huì)話對(duì)象或當(dāng)前ServletContext對(duì)象里。

          注意     如果你動(dòng)態(tài)賦給list屬性的對(duì)象沒(méi)有任何選項(xiàng),你必須返回一個(gè)空的數(shù)組/Collection/Map,而不是返回一個(gè)空值(null)。

          5.11.1 賦值一個(gè)String

          你可以將一個(gè)數(shù)組賦值為String表示形式。例如,下面把一個(gè)字符串賦值給select標(biāo)簽:

          這個(gè)select標(biāo)簽將呈現(xiàn)為:

          請(qǐng)注意,每個(gè)選項(xiàng)的值和行標(biāo)使用的是同一個(gè)字符串元素。

          在絕大多數(shù)Struts應(yīng)用程序里,選項(xiàng)的值和行標(biāo)應(yīng)該不同,這需要使用如下所示的語(yǔ)法:

          例如,下面這個(gè)select標(biāo)簽

          將呈現(xiàn)為:


          5.11.2 賦值一個(gè)Map

          如果你想讓各個(gè)選項(xiàng)的值與它的行標(biāo)不同,你可以使用一個(gè)Map作為選項(xiàng)的來(lái)源。使用Map作為選項(xiàng)的來(lái)源很簡(jiǎn)單:把選項(xiàng)的值用作Map的鍵、把選項(xiàng)的行標(biāo)用作Map的鍵值即可。例如,以下代碼將創(chuàng)建一個(gè)名為cities的Map,它包含3個(gè)城市的名字:

          如果cities是一個(gè)動(dòng)作屬性,你可以像下面這樣把它賦值給list屬性:

          或者,如果cities是一個(gè)應(yīng)用程序?qū)傩裕憧梢允褂萌缦滤镜拇a:


          5.11.3 賦值一個(gè)Collection或一個(gè)對(duì)象數(shù)組

          你還可以使用一個(gè)對(duì)象數(shù)組或一個(gè)對(duì)象Collection來(lái)作為選項(xiàng)的來(lái)源。此時(shí),你將需要用到list、listKey和listValue屬性。具體做法是:把那個(gè)數(shù)組或Collection賦值給list屬性,把用來(lái)提供選項(xiàng)值的對(duì)象屬性賦值給listKey屬性,把用來(lái)提供選項(xiàng)行標(biāo)的對(duì)象屬性賦值給listValue屬性。

          例如,假設(shè)某個(gè)動(dòng)作對(duì)象的getCities方法將返回一個(gè)以City對(duì)象為元素的List,而City對(duì)象有一個(gè)id和一個(gè)name屬性,你就可以用如下所示的代碼把這個(gè)List賦值給一個(gè)select標(biāo)簽:

          posted on 2011-11-09 09:46 計(jì)明敏 閱讀(1648) 評(píng)論(0)  編輯  收藏 所屬分類: struts

          主站蜘蛛池模板: 驻马店市| 手游| 河池市| 庄河市| 凤城市| 哈巴河县| 吉木萨尔县| 双峰县| 涿州市| 邵阳县| 渭南市| 达日县| 新竹市| 外汇| 奉贤区| 青浦区| 云霄县| 中超| 丹巴县| 鸡西市| 塘沽区| 东城区| 新宁县| 林甸县| 华坪县| 南昌县| 皮山县| 琼海市| 赤城县| 盐亭县| 航空| 湘乡市| 浑源县| 射阳县| 西安市| 和田市| 同仁县| 兰坪| 浦东新区| 恩施市| 清流县|