如何对整数值使用@Digits 验证

我想验证传入的数字是否为整数值(不含小数),介于 0 和 100 之间。

我有 dto 和 javax.validation 注释:

@Min(value = 1,message = "some msg")
@Max(value = 100,message = "some msg")
@Digits(integer = 3,fraction = 0,message = "some msg")
private int someField;

Dto 在@RestController 类中用作输入方法(@PostMapping)参数。

@Min 和@Max 工作正常,但@Digits 不行。当我发送数字时,例如 95.5,它被转换为 95 并抛出任何异常。为什么@Digits 不检查它?

foxconn_fy 回答:如何对整数值使用@Digits 验证

“someField”的类型是 int,所以当你传递值 95.5 时,它会通过忽略小数部分被转换为 int。 如果您将 someField 的类型更改为 BigDecimal、BigInteger 等包装类型,那么它应该可以按预期工作。

本文链接:https://www.f2er.com/1185308.html

大家都在问