<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