我有一个表,其中一列是按钮,当我点击按钮时,如何将$ {user.key}发送到servlet?
<form action="InstitutionManagementServlet" method="post" >
<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop">
<tr>
<td class="numberWidth">${loop.index + 1}</td>
<td class="nameWidth" id="${user.key}">${user.value}</td>
<td><input type="submit" name="Deactivate" value="Deactivate"/></td>
</tr>
</c:forEach>
</form>
答案 0 :(得分:4)
这有两种方法。
将其作为按钮值传递(并使用<button>
代替<input>
,以便为其添加标签)
<form action="InstitutionManagementServlet" method="post">
<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop">
<tr>
<td class="numberWidth">${loop.index + 1}</td>
<td class="nameWidth" id="${user.key}">${user.value}</td>
<td><button type="submit" name="Deactivate" value="${user.key}">Deactivate</button></td>
</tr>
</c:forEach>
</form>
与
String key = request.getParameter("Deactivate");
// ...
或者,将每个按钮放在自己的形式中,并将该键作为隐藏字段。
<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop">
<tr>
<td class="numberWidth">${loop.index + 1}</td>
<td class="nameWidth" id="${user.key}">${user.value}</td>
<td>
<form action="InstitutionManagementServlet" method="post">
<input type="submit" name="Deactivate" value="Deactivate" />
<input type="hidden" name="key" value="${user.key}" />
</form>
</td>
</tr>
</c:forEach>
与
String key = request.getParameter("key");
// ...
答案 1 :(得分:2)
让它成为隐藏字段的一部分
<form action="InstitutionManagementServlet" method="post" >
<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop">
<tr>
<td class="numberWidth">${loop.index + 1}</td>
<td class="nameWidth" id="${user.key}">${user.value}</td>
<td
<input type="submit" name="Deactivate" value="Deactivate"/>
<input type="hidden" name"key" value="${user.key}"/>
</td>
</tr>
</c:forEach>
</form>
使用servlet中的String[] keys = request.getParameterValues("key");
读取它。你将获得所有钥匙。