2014-09-29 39 views
0

这是我以前的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中。以下是表面UI的图像。

enter image description here

注:在上面的图像假设ChangeName是一个按钮。

每次我不同的行中点击不同的按钮ChangeName,在名为Example servlet的,隐藏的请求参数值始终为1,这很奇怪。我不确定我错在哪里。我试图打印${thisList.objId}多了一个TD,这样

<td><c:out value="${thisList.objId}"></c:out></td><!--This displays 1,2,3 in 3 iterations--> 

如何获得不同的ObjID值在servlet在不同行,每一行不同的按钮点击?

回答

1

首先,提交给servlet而不是另一个JSP。第二,你正在寻找的是:

String[] values = request.getParameterValues("objId"); 
1

问题是你正在使用隐藏的输入字段具有相同的名称“objId”。所以当你提交表单时,你只有一个参数“objId”。

您应该创建动态和不同的字段“名称”以获取所有值。