早上好,我正在尝试制作一个 jsp 页面,该页面从文本中读取格式为 mm:ss 的字符串值;之后,它必须将此字符串转换为 time 类型,因为该值必须保存在 postgres time 类型的列中;现在代码如下:
<%@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);"
出了什么问题?
最佳答案
根据异常跟踪:
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它提供了一组用于解析和格式化区域设置敏感的数字和日期的标签。
阅读我的另一篇文章,了解更多内容,以从日期字符串和长整型(时间以毫秒为单位)创建日期对象。
<小时/>在将页面提交回客户端之前,所有 Scriplet 代码都会转换为 HTML 响应。
现在第一次访问页面时会发生什么?
由于表单未提交,因此参数值为 null
并导致上述异常。
关于java jsp 将字符串转换为时间(或日期?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783246/