java jsp将字符串转换成时间(或日期?)

时间:2014-07-16 14:20:05

标签: java string jsp date

早上好,我试着制作一个jsp页面,从文本中读取格式为mm:ss的字符串值;之后,它必须在time类型中转换此字符串,因为此值必须保存在time类型的postgres列中;现在代码如下:

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.*"%>
<%@page import="java.text.*"%>
<form name="form1" method="post" action="prova.jsp">
<input name="tempo" type="text" />
<br/>
<input type="submit" value="Inserisci">
</form>

String tempoperc=request.getParameter("tempo");
Date data = null;            
DateFormat df = new SimpleDateFormat("mm:ss");            
data = df.parse(tempoperc);

执行jsp页面时出现以下错误:

An exception occurred processing JSP page /prova.jsp at line that contain 
"data = df.parse(tempoperc);"

出了什么问题?

1 个答案:

答案 0 :(得分:1)

根据异常追踪:

  

root cause java.lang.NullPointerException java.text.SimpleDateFormat.parse(Unknown Source)

根本原因是查询参数tempo正在返回null

如何重现这个问题?

new SimpleDateFormat("mm:ss").parse(null);

上述代码会导致上述异常。


始终尽量避免使用Scriplet并使用JSTL或EL。对于数据库操作 Servlet 中执行,只需将请求提交给Servlet。

在JSP中,您可以使用JSTL Formatting Tags提供一组标记来解析和格式化区域设置敏感的数字和日期。

在我的另一篇文章中阅读更多信息,以便从日期字符串和长时间(以毫秒为单位)创建一个Date对象。


在将页面提交回客户端之前,所有Scriplet代码都会转换为HTML响应。

现在第一次访问页面会发生什么?

由于未提交表单,因此参数值将为null并导致上述异常。