jsp页面上的下拉框案例(Struts2)

时间:2022-11-19 17:47:32

<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