JSP数据提交至SQL数据库时二次提交出现NULL值求助
问题原因
你遇到的数据库存入NULL的问题,本质是确认页面(Index1.jsp)的提交表单没有携带用户输入的数据。当前的表单只有一个提交按钮,点击后后端Register接口无法获取到任何参数,因此只能存入NULL。
解决方案
在确认页面的提交表单中添加隐藏输入框,把从首页传递过来的用户数据存储在这些隐藏字段里,这样点击提交时就能把数据一起发送给后端接口。
修改后的Index1.jsp代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>确认信息</title> </head> <body> <h1>确认提交信息</h1> <% String id = request.getParameter("Id"); String first = request.getParameter("First"); String last = request.getParameter("Last"); String email = request.getParameter("Email"); String phone = request.getParameter("Phone"); %> <table border="1"> <tbody> <tr> <td>ID : </td> <td><%=id %></td> </tr> <tr> <td>名字 : </td> <td><%=first %></td> </tr> <tr> <td>姓氏 : </td> <td><%=last %></td> </tr> <tr> <td>邮箱 : </td> <td><%=email %></td> </tr> <tr> <td>电话 : </td> <td><%=phone %></td> </tr> </tbody> </table> <!-- 修改后的表单:添加隐藏字段传递数据 --> <form target="_blank" name="myform" action="Register" method="post" class="decor"> <!-- 隐藏字段,存储用户数据 --> <input type="hidden" name="Id" value="<%=id %>"> <input type="hidden" name="First" value="<%=first %>"> <input type="hidden" name="Last" value="<%=last %>"> <input type="hidden" name="Email" value="<%=email %>"> <input type="hidden" name="Phone" value="<%=phone %>"> <div> <button type="submit" value="Submit" name="submit">确认提交</button> </div> </form> </body> </html>
补充说明
- 隐藏字段不会在页面上显示,但会随表单一起提交到后端。
- 后端
Register接口可以通过request.getParameter("Id")等方式正常获取到参数,从而正确存入数据库。
内容的提问来源于stack exchange,提问作者DyingAssassin
相关产品推荐
相关产品推荐

