我有下面的html表单,用户在其中保留一个房间。我正在尝试获取用户在jsp代码中输入的数据,如图所示,但是数据库中的所有值都添加为null,除了“ user_email”字段外,该字段被视为从servlet派发的属性。我的代码有问题吗?如果是这样,我如何从此表单的输入字段中获取值,并将其提交到下面的jsp代码。
public void insert(String d, String m, String y, String r, String n, String rt, String em) {
Connection connection = null;
PreparedStatement ppStm = null;
try {
connection = ConnectionConfiguration.getConnection();
ppStm = connection.prepareStatement("INSERT INTO reservations (res_day,res_month,res_year,no_rooms,"
+ "no_nights,room_type,user_email)"
+ "VALUES (?,?,?,?,?,?,?)");
int count = 1;
ppStm.setString(count++, d);
ppStm.setString(count++, m);
ppStm.setString(count++, y);
ppStm.setString(count++, r);
ppStm.setString(count++, n);
ppStm.setString(count++, rt);
ppStm.setString(count++, em);
ppStm.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
} finally {
if (ppStm != null){
try {
ppStm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//插入功能
GBP 23.44 -> Valid
23.44 -> Valid
23 -> Valid
23 GBP -> Valid
234.44 GBP -> Valid
234.44 -> Valid
23.334 GBP -> Invalid
234.443 GBP -> Invalid
234& GBP -> Invalid
答案 0 :(得分:1)
php bin/console generate:bundle
答案 1 :(得分:0)
似乎您正在同一输入页面定义的jsp页面上读取参数。
没错,但是在读取参数之前,您无需检查表单是否已提交。
简单的解决方案是:
检查请求中是否存在特定参数
(如果存在),然后读取所有其他参数。
如果不存在,则不要读取任何其他参数
示例:
<%
String operation = request.getParameter("operation");
if ( operation != null and operation.equals( "addreservation" ) )
{
String d = request.getParameter("day");
String m = request.getParameter("month");
String y = request.getParameter("year");
String r = request.getParameter("roomNo");
String n = request.getParameter("nights");
String rt = request.getParameter("rType");
String em = String.valueOf(request.getAttribute("email"));
ReservationDb rd = new ReservationDb();
rd.insert(d, m, y, r, n, rt, em);
}
else
{
// ignore reading parameters
}
;
%>