将JSP表中的更改保存到数据库中
我有一个显示数据库内容的表。 我想将表中编辑的更改保存到我的数据库中。 问题是无论我编辑哪一行,每当我尝试保存时,它都会将参数从第一行中取出。将JSP表中的更改保存到数据库中
main.jsp中:
<FORM NAME="form1" METHOD="POST" action="update.jsp"> <table>
<% ResultSet rs=statement.executeQuery(query);
while(rs.next())
{%>
<tr>
<td style="display:none;"><input type="text" name="id" value="
<%=rs.getInt("ID") %>"></td>
<td><input type="text" name="val1" value="<%=rs.getString("Value1") %>"></td>
<td><input type="text" name="val2" value="<%=rs.getString("Value2") %>"></td>
<td><input type="submit" name="Submit" value="Save"></td>
</tr>
<% } %>
</table>
</FORM>
update.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.sql.*,java.io.*,java.util.*,dbcon.SQLConnection" %>
<% String idRez=request.getParameter("id");
String v1=request.getParameter("val1");
String v2=request.getParameter("val2");
SQLConnection.updateDatabase(idRez,Double.parseDouble(v1), Double.parseDouble(v2));
response.sendRedirect("Main.jsp");
%>
回答:
由于您Main.jsp
所有行具有相同的名称(id
,val1
,val2
),当你做一个request.getParamater()
调用,将返回第一个匹配参数。
您可以通过如下获取所有参数值来解决此问题。
String[] ids = request.getParameterValues("id");
你将不得不修改Main.jsp
因此,以确保您在update.jsp
取值的正确组合然而,当你只是想提交在其上单击Save
行,你可以在行上声明Form
而不是Global Form
。
<!--FORM NAME="form1" METHOD="POST" action="update.jsp"--> <table>
<% ResultSet rs=statement.executeQuery(query);
while(rs.next())
{%>
<tr>
<td style="display:none;">
<FORM NAME="form1" METHOD="POST" action="update.jsp">
<input type="text" name="id" value="
<%=rs.getInt("ID") %>"></td>
<td><input type="text" name="val1" value="<%=rs.getString("Value1") %>"></td>
<td><input type="text" name="val2" value="<%=rs.getString("Value2") %>"></td>
<td><input type="submit" name="Submit" value="Save"></FORM></td>
</tr>
<% } %>
</table>
<!--/FORM-->
以上是 将JSP表中的更改保存到数据库中 的全部内容, 来源链接: utcz.com/qa/261667.html