ServletRequest.getParameterMap()返回Map 和ServletRequest.getParameter()返回String?
能有人向我解释为什么ServletRequest.getParameterMap()
返回一个类型ServletRequest.getParameterMap()返回Map <String,String []>和ServletRequest.getParameter()返回String?
Map<String, String[]>
ServletRequest.getParameter()
刚刚返回类型String
我不明白,为什么在地图将永远映射到一个以上的价值。 TIA。
它返回控件的所有参数值,其中的名称与相同。
例如:
<input type="checkbox" name="cars" value="audi" /> Audi
<input type="checkbox" name="cars" value="ford" /> Ford
<input type="checkbox" name="cars" value="opel" /> Opel
或
任何检查/选择的值会在为:
String[] cars = request.getParameterValues("cars");
它也是在表可选择多个有用:
<table>
<tr>
<th>Delete?</th>
<th>Foo</th>
</tr>
<c:forEach items="${list}" var="item">
<tr>
<td><input type="checkbox" name="delete" value="${item.id}"></td>
<td>${item.foo}</td>
</tr>
</c:forEach>
</table>
结合
与
itemDAO.delete(request.getParameterValues("delete"));
如果您具有多值选择控件(如多选列表或一组映射到相同名称的按钮),则多个选择将映射到一个数组。
我不确定在按钮的情况下是否看到该值。在体面的浏览器中,它只会返回**按下**按钮的值,而不是**全部**按钮的值。 – BalusC 2009-12-18 15:29:00
http://foo.com/bar?biff=banana&biff=pear&biff=grape
“一击”现在映射到{"banana","pear","grape"}
在具有多值的控制(复选框,多选等)时,request.getParameterValues(..)
用于取的值的情况。
真正的函数来获取所有参数值是
request.getParameterValues();
getParameter()
仅仅是一个捷径来获得第一个。
感谢您的反馈。它现在非常有意义。有时很容易错过显而易见的东西。我想这就是这个网站如果:)。 – BillMan 2009-12-18 15:19:33