Spring Mvc - typeMismatch的自定义验证消息

时间:2017-05-19 14:27:08

标签: spring validation type-mismatch

我有一个需要data.input的字段。如果输入double,则默认消息如下:

String

未输入值时的自定义消息。我已将此消息设置为执行以下操作:

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"

是否存在类型不匹配的等效注释?

2 个答案:

答案 0 :(得分:3)

没有简单的方法。事实上,验证无法应用。验证适用于初始化的POJO。在你的情况下,无法创建POJO,没有有效值来初始化Double。

作为我的一个项目中的解决方法,我们将所有POJO字段用于字符串并验证它们。此外,还提供了将String值转换为Double / Boolean / Date等的方法。

答案 1 :(得分:2)

没有类型不匹配的验证注释,因为这在数据绑定期间发生,如果字段的数据绑定失败,则验证不会发生。但是,如果要更改错误列表中显示的消息,则应该能够使用项目资源包中的messages.properties文件来执行此操作。我在我的消息文件中使用以下密钥,该文件适用于joda-time日期字段:

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

有关详细信息,请参阅this question