如何解决使用Spring Boot ConstraintValidator进行的多字段验证无法正常工作
我正在尝试使用Spring Boot ConstraintValidator验证多个字段。但是它不会嗡嗡作响,没有错误。
有人可以帮我找出来吗。.
控制器
@PostMapping("/greetings")
public Greeting greeting(@RequestBody Greeting greeting) {
System.out.println(greeting);
return greeting;
}
需要验证的bean
@GreetingAnnotation
public class Greeting {
private final long id;
private final String content;
public Greeting(long id,String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
注释
@Constraint(validatedBy = GreetingValidator.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface GreetingAnnotation {
String message() default "Field is required";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
验证器
public class GreetingValidator implements ConstraintValidator<GreetingAnnotation,Greeting > {
@Override
public boolean isValid(Greeting greeting,ConstraintValidatorContext context) {
return greeting.getId() >=0 && greeting.getContent().length() >=100; // Never gets called
}
}
注意:这只是用于验证对象的示例存根
预先感谢
解决方法
您是否在控制器级别使用@Validated?
如果没有,他们添加它。它将起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。