Как получить значения флажков, когда значения Id генерируются динамически - PullRequest
1 голос
/ 18 ноября 2009

Я динамически называю набор флажков на основе определенных имен файлов (пользователь выбирает файл для включения для некоторой обработки).

Есть ли способ, которым я могу получить имена файлов или мне нужно сохранить их в какой-либо объект сеанса, а затем использовать извлеченные значения (из объекта сеанса) для получения значений флажков.

Короче говоря, я действительно хочу знать, какие флажки были нажаты и каким именам файлов они соответствуют, любое решение подойдет.

Ответы [ 3 ]

6 голосов
/ 18 ноября 2009

Используйте уникальный id, но такой же name. Тогда вы сможете использовать либо getParameterValues(name), либо getParameterMap() из ServletRequest. Помните, что вы получите только то, что выбрано.

0 голосов
/ 18 ноября 2009

Как выглядит ваш HTML? Я ожидаю, флажки как:

<li><input id='0001' type='checkbox' name="files[]" value="file1"/>/xyz/file1</li>
<li><input id='0002' type='checkbox' name="files[]" value="file2"/>/xyz/file2</li>
<li><input id='0003' type='checkbox' name="files[]" value="file3"/>/xyz/file3</li>
<li><input id='0004' type='checkbox' name="files[]" value="file4"/>/xyz/file4</li>

Имя будет связано с любыми значениями, отмеченными при отправке. Здесь я использовал files [] , потому что это требуется PHP, я не делал этого в сервлетах.

0 голосов
/ 18 ноября 2009

Вы делаете все это на стороне сервера или на стороне клиента java-script?

Если все это на стороне сервера, почему бы не поставить флажок перед именем при динамическом присвоении им имени:

<input type="checkbox" name="checkbox_someRandomeName" value="something" />

Затем вы можете зациклить опубликованные переменные и посмотреть, начинается ли имя с «флажка»:

ParameterMap paramMap = request.getParameterMap();
// Loop through the list of parameters.
Iterator y = paramMap.keySet().iterator();
while (y.hasNext()) {
  String name = (String) y.next();  
  if name.startswith("checkbox"){
    // do something
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...