2012-07-05 98 views
0

這是第二個星期試圖找到我的問題的答案......除了向數據庫問題插入日期字段時,一切正常......我確信有人可以幫助我!謝謝 !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。

+0

this.getCampstart()。getTime()返回什麼對象?它是日期還是字符串? –

+0

http://stackoverflow.com/a/7628390/411902 –

+0

可能的誘惑似乎是引入了一個空值。它應該從JSP頁面獲取用戶輸入的日期。我只是不能指出問題......(所有其他領域的工作很好,除了日期)。 我不確定它的java.util.Date是否爲java.sql。日期轉換問題,或者它沒有將日期從JSP頁面傳遞到Java類;或格式不正確...但嘗試不同的設置,只是不能破解它! :( – Beto

回答

0

當我更改日期的格式時,有工作。出於某種原因,它發送的月份是「7」而不是「07」。