【发布时间】:2023-04-05 13:22:01
【问题描述】:
我想验证从客户端收到的 JSON 请求。
我尝试使用注释(@notnull, @length(min=1,max=8) 等),它工作正常,但问题是我无法获取如果它们无效将被调用的字段和消息。
虽然,我在控制台中收到一条错误消息。
约束违规列表:
[
ConstraintViolationImpl
{
interpolatedMessage=
'must be greater than or equal to 900000000',
propertyPath=phoneNumber,
rootBeanClass=class
com.org.infy.prime.RestWithJPA.CarrierFile,
messageTemplate=
'{javax.validation.constraints.Min.message}'
}
ConstraintViolationImpl
{
interpolatedMessage=
'length must be between 1 and 20',
propertyPath=accountID,
rootBeanClass=class
com.org.infy.prime.RestWithJPA.CarrierFile,
messageTemplate=
'{org.hibernate.validator.constraints.Length.message}'
}
]
请求是否有人可以帮助我,或者至少给我一个替代方法,以更有效的方式验证请求。
PS:我不想逐个字段地验证它。
【问题讨论】:
-
如果你在控制器中使用@Valid,你可以通过在你的方法签名中包含
, BindingResult bindingResult)来获得你想要的信息。它将包含错误的字段和错误 -
你能展示你的实体或模型类(来自客户端)和控制器吗?
标签: java json hibernate rest spring-boot