0

比方说一个,我有以下豆,我在我的控制器的输入方法得到使用@RequestBody弹簧安置@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

我想达到两个目的,

  1. ssnNumber是一个绝对的必填字段 - 如果为空或空 - 无需验证别的。只需返回错误消息。

  2. 如果ssnNumber是有效的,看看是否有任何三个字段 - firstNamelastNamegroupCd@NotNull & @NotEmpty有效。如果有任何字段存在,请处理该请求。

我该如何做到这一点?

我使用这两个依赖关系的验证目的,

<dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
</dependency> 

验证API是 - 1.1.0.Final & Hibernate验证器 - 5.3.4.Final

编辑:可能的重复链接正在讨论JSON字段顺序。就我而言,字段顺序无关紧要。它关于字段验证顺序。我错过了什么吗?

+0

[杰克逊ObjectMapper的可能的复制 - 指定对象属性的序列化顺序](http://stackoverflow.com/questions/27577701/jackson-objectmapper-specify-serialization-order-of-object-properties) –

+0

它不是重复的,Hows与请求bean相关的JSON字段顺序验证?我错过了什么吗? –

回答

0

我没有找到一种方法来处理注释,即使用注释对订单字段进行验证。

我不得不通过实施最终写我的自定义验证讲座MyValidator - org.springframework.validation.Validator,写我的有序逻辑那里,然后补充说,验证该控制器在控制器类,

@InitBinder 
    public void globalInitBinder(WebDataBinder binder) { 
     binder.addValidators(new MyValidator()); 
    }