Как получить имя флажка в сервлете, если я предоставляю динамические имена? - PullRequest
0 голосов
/ 23 июля 2010

Когда я предоставляю динамическое имя флажка внутри цикла for, например

<input type="checkbox" name="<%=i%>" />

Как я могу получить значение в сервлете?

1 Ответ

0 голосов
/ 23 июля 2010

Три способа:

  1. Просто повторите тот же цикл for в сервлете, что и в JSP (вы действительно знаете условия цикла), и выполните request.getParameter(i) на каждой итерации и, если необходимо, добавьте значение каждого параметра в List<String>, чтобы вы может легко обработать его потом.

  2. Префикс имени параметра определенной строкой, например, name="foo${i}", захватить все параметры с помощью request.getParameterMap(), выполнить цикл по нему и определить, если name.startsWith("foo"), и при необходимости собрать соответствующие значения в List<String>.

  3. Просто присвойте всем флажкам одно и то же имя, но другое значение и возьмите отмеченные флажки с помощью request.getParameterValues("checkboxname");. Он вернет String[] со всеми значениями.

Кстати, путь 3 - нормальная практика.


Тем не менее, скриптлеты (эти <% %> вещи в вашем коде) указывают на плохие практики. Я бы посоветовал выбросить устаревшие книги / учебники по JSP / сервлетам, которые вы сейчас читаете, и перейти по следующим ссылкам, чтобы узнать, как все делать правильно:

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