在select标签中添加multiple=”multiple”属性,可以使下拉列表(drop down list)变成多选列表(multiple select list),但是在jsp与servlet中使用获取表单值常用的request.getParameter(”value”)获取到的只是多选列表中的第一个选中值,经过查询资料,原来HttpServletRequest还有一个方法getParameterValues(String key),其返回值为String类型的数组,里面存放的正是多选列表中的选中的值。
也就是说,jsp和servlet中对于表单中的多选控件提交的值都是通过此getParameterValues方法来获取的,比如checkbox list(复选框列表)等,示例代码如下:
<form action=”index.jsp” method=”POST”>
<select name=”value” multiple=”multiple”>
<option value=”val1″>Value 1</option>
<option value=”val2″>Value 2</option>
<option value=”val3″>Value 3</option>
<option value=”val4″>Value 4</option>
<option value=”val5″>Value 5</option>
</select>
<input type=”submit” value=”Submit”>
</form>
<%
out.write(”<h3>selected values : <h3>”);
String[] selected = request.getParameterValues(”value”);
if(selected != null){
for(int i=0; i<selected.length; i++){
out.write(”<p>” + selected[i] + “<p>”);
}
}else{
out.write(”<p> No value selected <p>”);
}
%>
1)初始状态,未选择时
2)假定选择了2,3,4
3)结果:
4)选择一个
5)结果: