在spring验证中验证枚举

acruukt9  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(422)

我正在从spring控制器执行请求参数验证。我有一个枚举验证器,类似于https://funofprograming.wordpress.com/2016/09/29/java-enum-validator/,如果enum字段直接位于我用于验证的对象中,则可以正常工作。但是,如果该对象包含其他对象,它就不起作用。
例如,这里是控制器中的请求

@PostMapping("/")
    public ResponseEntity<?> performOperation(@Valid @RequestBody MyModel model) {

下面是我用来验证请求参数的模型

@ApiModel
public class MyModel {
   @ApiModelProperty
   @EnumValueValidator(enumClass = EnumName.class)
   public String provider;

   MyObject obj;
}

public class MyObject {
   @EnumValueValidator(enumClass = SomeEnum.class)
   public String anotherEnum;
}

在上面的例子中, provider 验证没有问题。但是 anotherEnum 不是。spring模型有没有办法对对象进行深入的验证?

xlpyo6sf

xlpyo6sf1#

你应该注解一下 MyObject obj@Valid 还有注解。请记住,空对象不会被验证,因此您可能应该同时执行以下两个操作:

@NotNull
@Valid
MyObject obj;

相关问题