1. 程式人生 > >s標籤s:select下拉列表的使用

s標籤s:select下拉列表的使用

現象:jsp頁面中s:select標籤的使用

原因:在struts2框架開發中,有時候jsp頁面需要用s標籤來寫,因為s標籤能自動讀取值棧中相匹配的欄位資訊。其中s:select怎麼使用呢?

解決方案:
1:當下拉列表的選項固定且簡單的時候可以使用如下方法

<s:select id="type" name="type" class="ComboType" list="#{'1':'WiFi','2':'行動網路','3':'無網路'}"></s:select>

這樣就組成了三個選項的下拉列表 如果要設定預設值則加入value=”“

    <s:select id="type" name="type" class="ComboType" list="#{'1':'WiFi','2':'行動網路','3':'無網路'}" value="2"></s:select>

2:當下拉列表使用的集合是後臺資料庫所查到的時候可以使用如下方法

 <s:select id="adaptRules" name="adaptRules" class="adaptrules" list="adaptruleslist" listKey="id" listValue="name"></s:select>

後臺在Action方法中的List處理如下:首先查詢到對應物件集合 然後放入request中 在jsp頁面獲取
其中jsp中的ListKey就是物件中id屬性,listValue就是物件中的name屬性

    List< Adaptrules> adaptruleslist=adaptrulesService.FindAdaptrules();
    request.setAttribute("adaptruleslist", adaptruleslist);

物件的資訊如下:
這裡寫圖片描述

3:當下拉列表使用後臺Map的時候可以使用如下方法

<s:select id="mode" name="mode" onchange="opCommonHide(this)" class="ComMode" list="#request.modeMap" listKey="key" listValue="value" value="#request.mode"></s:select>

list獲取後臺request中的Map屬性 map的key將作為下拉列表的value,map的值將作為下拉列表展示的值。 如果要設定預設選擇值則如圖多傳一位值mode用於預設選擇
這裡寫圖片描述

程式碼:

<s:select id="mode" name="mode" onchange="opCommonHide(this)" class="ComMode" list="#request.modeMap" listKey="key" listValue="value" value="#request.mode"></s:select>