【发布时间】:2020-05-18 07:58:42
【问题描述】:
我正在编写rest api,我们在RequestBody中接受dto,dto具有数据类型为int的字段。我想要实现的是,当用户尝试输入超过Integer.MAX_VALUE 的值时,我想给出错误,因为“值必须小于 2147483648”。我尝试使用
@Max(value = Integer.MAX_VALUE, message = "Code must be less than 2147483648")
private int code;
@Max 来自 javax.validation.constraints.Max。
但我得到了,
JSON 解析错误:数值 (2147483648) 超出 int 范围; 嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:数值 (2147483648) 超出 int 范围。
那么是否有任何其他注释可以实现这一点,或者我必须通过异常处理来做到这一点?
【问题讨论】:
-
@Sambit ,不,它没有回答我的问题。
-
此验证不起作用,因为无法为
int类型的字段分配更大的值,因此您添加的验证将永远不会触发。您需要将字段类型设为long才能执行此操作。
标签: java rest validation exception dto