[英]why i get null pointer exception?
我在下面發布了我的編碼,我想輸入日期並將其通過js p存儲到數據庫中。 當我執行我得到空指針異常。 必須做些什么改變? 有人可以幫忙嗎?
我的堆棧跟蹤是
堆棧跟蹤:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
根本原因
java.lang.NullPointerException
java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
java.text.DateFormat.parse(DateFormat.java:335)
org.apache.jsp.sample_005fvalidate_jsp._jspService(sample_005fvalidate_jsp.java:101)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
碼:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ALLOCATION</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
Connection con = null;
String StaffName = request.getParameter("StaffName");
String hourId = request.getParameter("hourId");
if(hourId==null)
hourId="";
String day = request.getParameter("day");
if (day==null)
day="";
String date = request.getParameter("date");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");here
java.util.Date dateStr = formatter.parse(date); // (this is the line that cannot be proccessed)
java.sql.Date dateDB = new java.sql.Date(dateStr.getTime());
if (date==null)
date="";
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation","root","success") ;
// PreparedStatement stat = con.PrepareStatement();
String updateString ="INSERT INTO tblstaffallocation (StaffName,hourId,daysId,date) VALUES (?,?,?,?)";
//'"+StaffName+"','"+hour+"','"+day+"','"+date+"')
PreparedStatement preparedStatement = con.prepareStatement(updateString);
preparedStatement.setString(1, StaffName);
preparedStatement.setInt(2, 0);
preparedStatement.setInt(3, 0);
preparedStatement.setDate(4,dateDB);
preparedStatement.executeUpdate();
String date = request.getParameter("date");
上一行具有空值。 您的請求中沒有“日期”參數。 請退房。 在您的請求中檢查參數“日期”的大小寫
確保在請求中傳遞了日期。 否則在分析語句之前放一個空檢查
java.util.Date dateStr;
java.sql.Date dateDB;
if(date!=null){
dateStr = formatter.parse(date);
dateDB = new java.sql.Date(dateStr.getTime());
}
嘗試
java.util.Date dateStr=null;
java.sql.Date dateDB=null;
if (date!=null){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
dateStr = formatter.parse(date);
dateDB = new java.sql.Date(dateStr.getTime());
}else{
date="";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.