隐藏的参数未正确传递

时间:2014-09-29 17:26:46

标签: jsp servlets jstl el

这是我之前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中。下面是用于说明用户界面的图像。

enter image description here

注意:在上图中,假设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值?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

问题是您正在使用具有相同名称的隐藏输入字段&#34; objId&#34;。因此,在您提交表单时,您只有一个参数&#34; objId&#34;。

您应该创建动态且不同的字段&#34; Name&#34;获得所有的价值观。