这是第二个星期试图找到我的问题的答案......除了向数据库问题插入日期字段时,一切正常......我确信有人可以帮助我!谢谢 !JSP日期到PostgreSQL日期JasperException
数据库字段: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:无法将字符串“2012年4月7日19:12”转换为类“ java.util.Date”为属性‘campstart’:属性编辑器无法与PropertyEditorManager
注册人可以帮我找出我做错了......
谢谢!!
Rob。
this.getCampstart()。getTime()返回什么对象?它是日期还是字符串? –
http://stackoverflow.com/a/7628390/411902 –
可能的诱惑似乎是引入了一个空值。它应该从JSP页面获取用户输入的日期。我只是不能指出问题......(所有其他领域的工作很好,除了日期)。 我不确定它的java.util.Date是否为java.sql。日期转换问题,或者它没有将日期从JSP页面传递到Java类;或格式不正确...但尝试不同的设置,只是不能破解它! :( – Beto