【问题标题】:Hidden parameters not passed correctly隐藏参数未正确传递
【发布时间】:2014-11-24 04:13:52
【问题描述】:

这是我之前question 的延续。我尝试使用发布请求隐藏 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>

上表最初会以表格格式显示 3 行名称:{a,b,c}。而且,每一行的 id 都是:{1,2,3},这些是隐藏的,不会显示在 UI 中。下面是从表面上说明 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值?

【问题讨论】:

    标签: jsp servlets jstl el


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 2022-01-25
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多