Java Spring REST@RequestBody验证按特定顺序进行,并且只有一个组必填字段
比方说,我在控制器的输入方法中使用Java Spring REST@RequestBody验证按特定顺序进行,并且只有一个组必填字段,java,bean-validation,hibernate-validator,spring-restcontroller,spring-rest,Java,Bean Validation,Hibernate Validator,Spring Restcontroller,Spring Rest,比方说,我在控制器的输入方法中使用@RequestBody public class MyRequestBean extends RequestBean { private static final long serialVersionUID = 1L; private String lastName ; private String firstName ; private String ssnNumber; private String groupC
@RequestBody
public class MyRequestBean extends RequestBean {
private static final long serialVersionUID = 1L;
private String lastName ;
private String firstName ;
private String ssnNumber;
private String groupCd;
}
我已将@Valid
放在-@RequestBody
旁边的入口点方法
我正在努力实现两件事
ssnNumber
是一个绝对必填字段-如果为空或null-无需验证任何其他内容。只需返回错误消息ssnNumber
有效,请查看firstName
、lastName
和groupCd
三个字段中的任何一个是否对@NotNull
和@NotEmpty
有效。如果存在任何字段,请处理该请求<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
javax.validation
验证api
org.hibernate
休眠验证器
验证API是-1.1.0.Final&Hibernate验证程序是-5.3.4.Final
编辑:可能的重复链接正在讨论JSON字段顺序。就我而言,字段顺序并不重要。它是关于字段验证顺序的。我遗漏了什么吗?我没有找到一种使用注释的方法,即使用注释进行订单字段验证 我最终不得不通过实现org.springframework.validation.validator来编写我的自定义验证器类-
MyValidator
,并在那里编写我的有序逻辑,然后在控制器类中为该控制器添加验证器
@InitBinder
public void globalInitBinder(WebDataBinder binder) {
binder.addValidators(new MyValidator());
}
它的可能重复不是重复,JSON字段顺序如何与请求bean验证相关?我错过什么了吗?