jimingminlovefly

          統計

          最新評論

          struts2.0的list、listKey和listValue屬性

          list、listKey和listValue屬性對radio、combobox、select、checklist、doubleselect等標簽來說非常重要。
                我們可以用一組radio標簽來提供一組選項。例如,下面這些HTML輸入標簽將呈現為如圖5-5所示的一組單選按鈕。



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

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


          注意     在select元素里,value屬性是可選的。如果沒有給出這個屬性,在某個選項被選中時,該選項的行標將作為select元素的值被發送到服務器。從理論上講,radio元素的value屬性也是可選的。可是,如果不給出value屬性,單選按鈕被選中時的值將是“on”而不是相應的radio元素的 label屬性值,這無疑會讓同一個表單里的多個radio元素難以區別。因此,在使用radio元素的時候往往必須給出它們的value屬性。

          本節解釋了list、listKey和listValue屬性在radio、select 和其他用來提供一組選項的標簽里的使用方法。在使用這些標簽時,你們需要提供一些鍵/值對作為那些選項的來源。在這3個屬性當中,list屬性是必不可少的,另外兩個屬性是可選的。我們可以把一個String、一個數組、一個java.util.Enumeration、一個 java.util.Iterator、一個java.util.Map或一個Collection賦值給list屬性,這個值對象既可以放在一個動作對象里,也可以放在當前會話對象或當前ServletContext對象里。

          注意     如果你動態賦給list屬性的對象沒有任何選項,你必須返回一個空的數組/Collection/Map,而不是返回一個空值(null)。

          5.11.1 賦值一個String

          你可以將一個數組賦值為String表示形式。例如,下面把一個字符串賦值給select標簽:

          這個select標簽將呈現為:

          請注意,每個選項的值和行標使用的是同一個字符串元素。

          在絕大多數Struts應用程序里,選項的值和行標應該不同,這需要使用如下所示的語法:

          例如,下面這個select標簽

          將呈現為:


          5.11.2 賦值一個Map

          如果你想讓各個選項的值與它的行標不同,你可以使用一個Map作為選項的來源。使用Map作為選項的來源很簡單:把選項的值用作Map的鍵、把選項的行標用作Map的鍵值即可。例如,以下代碼將創建一個名為cities的Map,它包含3個城市的名字:

          如果cities是一個動作屬性,你可以像下面這樣把它賦值給list屬性:

          或者,如果cities是一個應用程序屬性,你可以使用如下所示的代碼:


          5.11.3 賦值一個Collection或一個對象數組

          你還可以使用一個對象數組或一個對象Collection來作為選項的來源。此時,你將需要用到list、listKey和listValue屬性。具體做法是:把那個數組或Collection賦值給list屬性,把用來提供選項值的對象屬性賦值給listKey屬性,把用來提供選項行標的對象屬性賦值給listValue屬性。

          例如,假設某個動作對象的getCities方法將返回一個以City對象為元素的List,而City對象有一個id和一個name屬性,你就可以用如下所示的代碼把這個List賦值給一個select標簽:

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

          主站蜘蛛池模板: 兖州市| 仁化县| 邵武市| 柞水县| 安溪县| 常州市| 于田县| 济南市| 灵武市| 抚州市| 普定县| 丰台区| 清新县| 横山县| 东城区| 朝阳县| 惠州市| 阳江市| 治县。| 汶上县| 平潭县| 玉龙| 德江县| 横峰县| 吕梁市| 江山市| 民丰县| 枣阳市| 林西县| 色达县| 芜湖市| 德格县| 山西省| 武宣县| 库车县| 大同市| 抚顺县| 延津县| 麻栗坡县| 台北市| 敖汉旗|