【发布时间】:2012-07-11 06:02:09
【问题描述】:
这是第二周试图找到我的问题的答案......一切都很好,除了将日期字段插入数据库问题......我相信有人可以帮助我!谢谢你 !
数据库列是:campstart,它是一个“没有时区的时间戳”
++++++++++ JSP页面如下:
...(一些代码)//格式化日期:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
...(一些代码)//从网页获取输入
<input name="start" type="text" value="<%= defaultCampaign.getCampstart() != null ? dateFormat.format(defaultCampaign.getCampstart()) : dateFormat.format(new java.util.Date()) %>">
...(更多代码)
++++++++++ 在 Java 上:
... (一些代码) // 声明变量
private java.util.Date campstart = null;
...(一些代码)//分配数据
public void setCampstart(java.util.Date aCampstart) {
this.campstart = aCampstart; }
public java.util.Date getCampstart() {
return this.campstart; }
... (一些代码) // 写入 PostgreSQL +下面是有问题的行+
pst.setTimestamp(10, new Timestamp(this.getCampstart().getTime()));
...(更多代码)
+++++++++++
当我将代码行更改为以下(用于调试)时,它工作正常:
pst.setTimestamp(10, new Timestamp(new java.util.Date().getTime()));
日期插入工作完美,它写入数据库没有错误。但是,当我更改代码以插入用户日期时,它给了我以下错误:
org.apache.jasper.JasperException:无法将字符串“04/07/2012 19:12”转换为属性“campstart”的类“java.util.Date”:属性编辑器未向 PropertyEditorManager 注册
谁能帮我弄清楚我做错了什么...
谢谢你!!
罗伯。
【问题讨论】:
-
this.getCampstart().getTime() 返回什么对象?是日期还是字符串?
-
这似乎带来了一个空值。它应该从 JSP 页面获取用户输入的日期。我只是无法确定问题所在……(除日期外,所有其他字段都可以正常工作)。我不确定它的 java.util.Date 到 java.sql.Date 的转换问题,或者它没有将日期从 JSP 页面传递到 Java 类;或者格式不正确...但是尝试了不同的设置,就是破解不了!! :(
-
Rob,如果我将设置器更改为字符串,那么 JSP 页面上的日期输入将不起作用(我还有一个弹出日历,它以正确的格式显示日期)。 'SimpleDateFormat("dd/MM/yyyy HH:mm")'
-
当我更改日期格式时,它就可以工作了。出于某种原因,它在“7”而不是“07”之类的月份发送。感谢您的所有帮助!
标签: java jsp postgresql