use*_*437 4 validation spring type-mismatch
我有一个要求的字段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"
Run Code Online (Sandbox Code Playgroud)
未输入值时的自定义消息。我已将此消息设置为执行以下操作:
@NotNull(message = "price is required")
private Double price;
Run Code Online (Sandbox Code Playgroud)
是否存在类型不匹配的等效注释?
没有针对类型不匹配的验证注释,因为这是在数据绑定期间发生的,如果字段的数据绑定失败,则不会进行验证。但是,如果您想更改出现在错误列表中的消息,您应该能够使用messages.properties项目资源包中的文件来做到这一点。我在我的消息文件中使用以下键,它适用于我的 joda 时间日期字段:
typeMismatch.org.joda.time.LocalDate=Dates must be entered in the format MM/DD/YYYY
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此问题。
没有简单的方法。实际上,无法应用验证。验证将应用于初始化的POJO。在您无法创建POJO的情况下,没有有效的值来初始化Double。
作为我的项目之一的变通办法,我们将所有POJO字段都设为String并对其进行验证。还提供了将String值转换为Double / Boolean / Date等的方法。
| 归档时间: |
|
| 查看次数: |
1997 次 |
| 最近记录: |