2012-09-15 73 views
0

我有一個插入/更新數據的表單。命令對象(Bean)的類具有被放置在形式如下日期字段:命令對象的彈簧綁定日期字段

<form:hidden path="createdDate"> 

當我提交表單,所述BindResult.hasErrors()被驗證爲正確的。

我想我需要綁定日期對象,但它如何完​​成Command對象字段?

的表單bean代碼如下

@Entity 
@Table(name = "Employee") 

public class Employee { 

    @Id 
    @GeneratedValue 
    @Column(name="id") 
    private int id; 

    @Column(name="EmployeeName") 
    private String employeeName; 

    @Column(name="CreatedDate") 
    private Date createdDate; 

    //Setter and getter methods 
} 

錯誤:

[Field error in object 'employee' on field 'CreatedDate': rejected value [Mon Sep 17 20:35:26 IST 2012]; codes [typeMismatch.employee.CreatedDate,typeMismatch.CreatedDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [subject.CreatedDate,CreatedDate]; arguments []; default message [CreatedDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'CreatedDate'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'CreatedDate': no matching editors or conversion strategy found]] 
+2

你可以顯示你的命令類的內容,你已經定義了字段createdDate嗎?並且讓我知道你正在使用哪個數據庫。 –

+0

comannd類/(表單bean)是連接到mysql數據庫的hibernate映射類 – user1632836

+0

我需要查看該類來回答您的問題。請把代碼放在這裏。 –

回答

0

,我發現你的問題。在您的Employee模型類中,createdDate字段未正確定義。 您需要使用@Temporal註釋來定義該字段的類型爲date。

請把下面的註釋也createdDate

@Temporal(TemporalType.TIMESTAMP) 

的字段聲明之上,我認爲這應該解決您的問題。乾杯。

+0

即時獲得相同的錯誤,我的頁面沒有submmited – user1632836

+0

您正在使用哪個數據庫?還讓我知道數據庫中字段createdDate的數據類型。 –

+0

數據庫:createdDate的Mysql和數據類型是datetime – user1632836

2

這個註釋添加到您的日期字段:

@Column(name="CreatedDate") 
@DateTimeFormat(pattern="yyyy/MM/dd hh:mm:ss") //whatever format is appropriate to you.. 
private Date createdDate; 

確保您有喬達時間依賴和庫出現在類路徑中。它會自動註冊一個轉換器來照顧轉換。

+0

我有同樣的錯誤,並解決這個! – Raider

+2

僅供參考 - hh(小寫)爲12小時。 HH(大寫)是24小時 – ScrappyDev