<s:select></s:select>包含的屬性有:list="" ;name="" ;value="" ;headerKey="" ;headerValue="" ;listKey="" ;listValue="" 。
list 屬性:通常是在action中定義的,必須是一個可以迭代的源,如為一個List, Map, Set等。如果是一個Map,那么map的key就對應於select標簽中的value,map中的value就對應於select標簽中的 option。而如果是一個List或者是一個Set,那么可以通過listKey和listValue指定。注:該屬性是必備屬性;
如果list為空headKey 和headValue不能為空.listKey和listValue:listKey即對應於select標簽中的value, listValue即對應於select標簽中的option;
list : 源數據 (可以在action方法里從數據庫獲取list)
name : 被選數據存放的位置(這里我方在對象obj的屬性值userName中<需在action中定義該對象>)
value : 默認值
有時候打開一個表單,所顯示的下拉框要與某個字段對應,如下;
<s:select name="oilCanInfor.status" list="statusMap" listKey="key" listValue="value" value = "oilCanInfor.status" theme="simple"></s:select>
在statusMap中key所對應的就是oilCanInfor.status,如果value屬性中寫上這個屬性,那么就能實現 打開表單時下拉框默認顯示的是按某個字段來的效果。
listKey : 下拉選項的name
listValue : 下拉選項的value
上文提到過,如果list是一個MAP,那么map的key就對應於select標簽中的value,map中的value就對應於select標簽中的 option。如下;
<s:select id="cardfavour" list="cardFavourMap" headerKey="" headerValue="-全部-" name="cardPresent.cardfavour" theme="simple"> </s:select>
這里可以看到,在<s:select></s:select>中,value和option屬性都沒有寫進去,這是因為當你輸入一個Map時,如果下拉框沒有特殊要求的話,是可以省略的,系統會會默認map的key就對應於select標簽中的value,map中的value就對應於select標簽中的 option,其中headerValue : 默認值value ;headerKey : 默認name
參考博客:http://blog.sina.com.cn/s/blog_7cc04ac801015gxb.html