【问题标题】:jsp update multiple rows from tablejsp从表中更新多行
【发布时间】:2016-08-15 19:42:24
【问题描述】:

我正在使用 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 中放入什么,以便它将表中所有更改的值更新到数据库中?任何帮助表示赞赏。

【问题讨论】:

标签: java sql-server jsp servlets


【解决方案1】:

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

<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 中,您可以根据主键值查找和更新状态。 注意:postIdslStatus 参数将具有相同长度的数组值(在 servlet 中)。并且在同一索引处,它们将代表一个对象(实体类,即代表数据库表)的各自值。

【讨论】:

  • 感谢您的回答,但这不是我想要的。我想知道单击更新按钮时如何更新表中的所有行。我应该在 servlet 中放入什么代码来更新所有更改状态?假设我有一个 Update 方法调用 updatePost 来更新一个帖子
  • 您将从请求中获取 postId 和 slStatus 参数值(将获取字符串数组)。现在在循环中通过 postid 找到表中的行(从请求中获得的值数组)并使用循环中相同索引处的状态值更新行。
猜你喜欢
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
相关资源
最近更新 更多