从表中的按钮调用servlet

时间:2011-06-13 19:41:42

标签: java jsp servlets

我有一个表,其中一列是按钮,当我点击按钮时,如何将$ {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>

2 个答案:

答案 0 :(得分:4)

这有两种方法。

  1. 将其作为按钮值传递(并使用<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");
    // ...
    

  2. 或者,将每个按钮放在自己的形式中,并将该键作为隐藏字段。

    <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");读取它。你将获得所有钥匙。