ServletRequest.getParameterMap () возвращает Map <String, String []>, а ServletRequest.getParameter () возвращает String? - PullRequest
50 голосов
/ 18 декабря 2009

Может кто-нибудь объяснить мне, почему ServletRequest.getParameterMap() возвращает тип

Map<String, String[]> 

ServletRequest.getParameter() просто возвращает тип String

Я не понимаю, почему карта когда-либо отображает более одного значения. ТИА.

Ответы [ 5 ]

56 голосов
/ 18 декабря 2009

Возвращает все значения параметров для элементов управления с одинаковым именем *1001*.

Например:

<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"));
21 голосов
/ 18 декабря 2009
http://foo.com/bar?biff=banana&biff=pear&biff=grape

"biff" теперь отображается на {"banana","pear","grape"}

10 голосов
/ 18 декабря 2009

Реальная функция для получения всех значений параметров:

   request.getParameterValues();

getParameter() это просто ярлык, чтобы получить первый.

3 голосов
/ 18 декабря 2009

В случае многозначных элементов управления (флажок, множественный выбор и т. Д.), request.getParameterValues(..) используется для извлечения значений.

2 голосов
/ 18 декабря 2009

Если у вас есть элемент управления с несколькими значениями, например, список с несколькими вариантами выбора или набор кнопок, сопоставленных с одним и тем же именем, несколько вариантов выбора будут сопоставлены с массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...