现象: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>