这是我之前question的延续。我试图使用post请求隐藏URL中的参数。这是一种尝试。
<form name="a_form" action="Example" method="post">
<!--SOME other html code like table etc, here-->
<tbody>
<c:forEach items="${dataList}" var="thisList">
<tr>
<td><c:out value="${thisList.name}"></c:out></td>
<td>
<input type="hidden" id="objId" name="objId" value="${thisList.objId}" style="display: none;">
<input type="submit" name="edit" value="ChangeName"/>
</td>
</c:forEach>
</tbody>
</form>
上表最初将以表格格式显示名称为{a,b,c}的3行。并且,每行的id将是:{1,2,3},这些是隐藏的,不会显示在UI中。下面是用于说明用户界面的图像。
注意:在上图中,假设ChangeName
是一个按钮。
每次单击不同行中的不同ChangeName
按钮时,在名为Example
的servlet中,隐藏的请求参数值始终为1 ,这很奇怪。我不确定我错在哪里。我试图在另外一个td中打印${thisList.objId}
,就像这样
<td><c:out value="${thisList.objId}"></c:out></td><!--This displays 1,2,3 in 3 iterations-->
如何在servlet中为不同的行中的每个不同按钮单击获取不同的objId值?
答案 0 :(得分:1)
首先,提交给servlet而不是另一个JSP。其次,你在寻找的是:
String[] values = request.getParameterValues("objId");
答案 1 :(得分:1)
问题是您正在使用具有相同名称的隐藏输入字段&#34; objId&#34;。因此,在您提交表单时,您只有一个参数&#34; objId&#34;。
您应该创建动态且不同的字段&#34; Name&#34;获得所有的价值观。