SimpleDateFormat df = new SimpleDateFormat("yyyy'-'MM'-'dd");
String sbd=request.getParameter("begindate");
java.util.Date bd2=df.parse(sbd);
java.sql.Date bd = new java.sql.Date(bd2.getTime());
我正在尝试将数据从表单发送到JSP页面并将其插入SQL数据库,但我遇到了日期格式问题。 yyyy-MM-dd是我日期的默认格式,但在执行代码时,我仍然在以下行中出现异常:
java.util.Date bd2=df.parse(sbd);
我看过类似的问题并尝试改变一些事情,但我似乎无法找到真正的问题。
编辑:这是堆栈跟踪
堆栈跟踪: 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) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
更新
删除撇号时,异常仍然存在,但异常消息更改:
org.apache.jasper.JasperException:java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549) 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) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
答案 0 :(得分:0)
尝试将初始化df的格式更改为" yyyy-MM-dd"没有连字符围绕连字符。
答案 1 :(得分:0)
在JSP中,您应该使用JSTL fmt tag library提供一组标记来解析和格式化区域设置敏感的数字和日期,并尝试避免使用Scriplet。
了解更多Oracle Tutorial - Internationalization Tag Library和JSP Standard Tag Library
示例代码:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:set value="2014-10-23" var="dateString" />
<fmt:parseDate value="${dateString}" var="dateObject" pattern="yyyy-MM-dd" />
<fmt:formatDate value="${dateObject}" pattern="dd/MM/yyyy" />
注意:格式完全取决于数据字符串。
您可以使用${param.begindate}
在jsp中使用begindate
隐式对象从请求参数中获取param
。
示例代码:
<fmt:parseDate value="${param.begindate}" var="dateObject" pattern="yyyy-MM-dd"/>
要避免NullPointerException
,您应该先检查一下。
<c:if test="${not empty param.begindate}">
...
</c:if>