我在混合JSP Servlet和c:forEach表单时遇到问题...问题在于,无论我的id是什么,HTML表单都会始终发送列表中的第一个,称为“ name =“ id”'。是否有一种解决方法,可能是为了获得好名字而获得多个name =“ id1”,name =“ id2” ... etc?
这里是代码。
<div id="client-table">
<form action="gestion-commandes" method="POST">
<table class="table table-striped">
<thead class="thead-custom">
<tr>
<th scope="col">#</th>
<th scope="col">NOM</th>
<th scope="col">PRENOM</th>
<th scope="col">EMAIL</th>
<th scope="col">TEL</th>
<th scope="col">COMMANDES</th>
</tr>
</thead>
<tbody class="tbody-custom">
<c:forEach items="${clients}" var="client">
<tr>
<th scope="col">${client.id}<input name="id" value="${client.id}" hidden = "true"></th>
<th scope="col">${client.nom}</th>
<th scope="col">${client.prenom}</th>
<th scope="col">${client.email}</th>
<th scope="col">${client.tel}</th>
<th scope="col"><button type="submit">Commandes</button>
</th>
</tr>
</c:forEach>
</tbody>
</table>
</form>
</div>
</div>
谢谢你,乔斯
当参数具有多个值时,使用request.getParameter("id")
将仅返回第一个参数值。
例如,在您的Servlet上,您需要使用request.getParameterValues
而不是request.getParameter
:
String[] ids = request.getParameterValues("id");