ServletRequest.getParameterMap() 返回 Map<String, String[]> ServletRequest.getParameter() 返回 String?

2022-08-31 20:32:45

有人可以向我解释为什么返回类型吗?ServletRequest.getParameterMap()

Map<String, String[]> 

ServletRequest.getParameter()只是返回类型String

我不明白为什么地图会映射到多个值。腾讯网.


答案 1

它返回具有相同名称的控件的所有参数值。

例如:

<input type="checkbox" name="cars" value="audi" /> Audi
<input type="checkbox" name="cars" value="ford" /> Ford
<input type="checkbox" name="cars" value="opel" /> Opel

<select name="cars" multiple>
    <option value="audi">Audi</option>
    <option value="ford">Ford</option>
    <option value="opel">Opel</option>
</select>

任何选中/选定的值将以以下形式出现:

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"));

答案 2
http://foo.com/bar?biff=banana&biff=pear&biff=grape

“biff”现在映射到{"banana","pear","grape"}


推荐