spring validator @模式不适用于整数

mcvgt66p  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(197)

我正在尝试一个简单的模式验证:

@Min(value = 0, message = "invalid.amount")
@Pattern(regexp = "[0-9]+", message = "invalid.amount")
private double amount;

但它给出的错误如下:

org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:229)

但这样做非常好:

@Pattern(regexp = "[\\w|-]{1,5}")
private String data;

看起来正则表达式对数字类型不起作用。

dxxyhpgq

dxxyhpgq1#

您假设如果子字符串正则表达式匹配通过,@Pattern注解将返回true。如果它不起作用,则您的假设可能不正确。
@模式(正则表达式=,标志=)字符序列
检查带注解的字符串是否与正则表达式正则表达式匹配(考虑给定的标志匹配)。
您可以尝试将double更改为String,并正常使用@Pattern。

@Pattern(regexp = "[0-9]+", message = "invalid.amount")
private String amount;

也可以是其他方式:

@DecimalMax("10.0") @DecimalMin("0.0") 
private double amount;

相关问题