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