jsp从表中更新多行

时间:2016-04-22 08:58:45

标签: java sql-server jsp servlets

我正在使用JSP和Servlet编写一个网站,需要将JSP中的表中的多个记录更新到数据库MSSQL中。假设我有一个这样的表:

Post.jsp

<form method="POST" action="PostServlet?action=update">
      <table border="1">
          <tr>
              <th>Post ID</th>
              <th>Title</th>
              <th>Date</th>
              <th>Status</th>
          </tr>
          <c:forEach var="p" items="${requestScope.list}">
            <tr>
                <td>${p.id}</td>
                <td>${p.title}</td>
                <td>${p.date}</td>
                <td>
                    <select name="slStatus">
                       <option value="approve" selected="true">Approve</option>
                       <option value="unapprove">Unaprove</option>
                     </select>
                </td>
            </tr>
          </c:forEach>
          <tr><button type="submit" value="Update"></button>
      </table>

假设我选择并更改多行中的状态。我应该在Servlet中放入什么,以便将表中所有已更改的值更新到数据库中?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您应该发送主键值,状态如下:

<form method="POST" action="PostServlet?action=update">
    <table border="1">
        <tr>
            <th>Post ID</th>
            <th>Title</th>
            <th>Date</th>
            <th>Status</th>
        </tr>
        <c:forEach var="p" items="${requestScope.list}">
            <tr>
                <td>${p.id}</td>
                <td>${p.title}</td>
                <td>${p.date}</td>
                <td>
                    <select name="slStatus">
                        <option value="approve" selected="true">Approve</option>
                        <option value="unapprove">Unaprove</option>
                    </select>
                    <input type="hidden" name="postId" value="${p.id}"/>
                 </td>
             </tr>
         </c:forEach>
         <tr><button type="submit" value="Update"></button>
    </table>

现在,在servlet中,您可以根据主键值查找并更新状态。 注意: postId slStatus 参数将具有相等长度的数组值(在servlet处)。在同一个索引处,它们将代表一个对象(实体类,即代表DB表)的相应值。