2017-05-19 66 views
0

我有一個字段需要double。如果輸入String,默認的消息是這樣的:Spring Mvc - typeMismatch的自定義驗證消息

Failed to convert property value of type java.lang.String to required type java.lang.Double for property price; nested exception is java.lang.NumberFormatException: For input string: "fsd" 

當沒有輸入值自定義消息。我已經設置此消息執行以下操作:

@NotNull(message = "price is required") 
private Double price; 

是否有類型不匹配的等效註解?

回答

3

沒有簡單的方法。實際上驗證不能應用。驗證應用於已初始化的POJO。在你的情況下,不能創建POJO,沒有有效的值來初始化Double。

作爲我的一個項目中的解決方法,我們製作所有POJO字段字符串並驗證它們。還提供了將String值轉換爲Double/Boolean/Date等的方法。

+0

這很有道理。謝謝! – user2892437

-1

沒有類型不匹配的驗證註釋,因爲這發生在數據綁定期間,並且如果數據綁定字段失敗,驗證不會發生。但是,如果要更改出現在錯誤列表中的消息,應該可以在項目的資源包中使用messages.properties文件。我用我的郵件文件中的下列鍵這對我的作品的喬達時間日期字段:

typeMismatch.org.joda.time.LocalDate=Dates must be entered in the format MM/DD/YYYY 

更多信息請參見this question

+0

如果有人能解釋downvote,我很樂意刪除我的回覆。 –