Passing multiple request parameters with same name from table rows

Dan picture Dan · May 10, 2011 · Viewed 14.3k times · Source

I have a table with checkboxes that the user can check and delete that row in the table. I have everything working, but if the user checks two boxes, it only retrieves the first one on the table.

<tr>
  <td><input type="checkbox" name="id" value="${user.id}" /></td>
  <td><c:out value="${user.name}" /></td>
  <td><c:out value="${user.email}" /></td>
</tr>

This is just an example of my HTML. Here is part of my servlet.

String id = request.getParameter("id");

So, again, I can get the first value selected, but I am not able to delete multiple rows on the same table. Is there a function I can use or anything similar? Thanks!

Answer

BalusC picture BalusC · May 10, 2011

The getParameter() indeed returns only the first one when there are multiple values on the same name. You need to use getParameterValues() instead to get all of those values.

String[] ids = request.getParameterValues("id");
// ...

See also: