问题描述
我为验证器创建了自定义注释。
@Documented
@Constraint(validatedBy = checkEmailsValidator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD,ElementType.FIELD,ElementType.ParaMETER })
public @interface checkEmails {
String message() default ErrorConstants.required_ParaMS;
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
验证器类:
public class checkEmailsValidator implements ConstraintValidator<checkEmails,Email> {
public boolean supports(Class<?> clazz) {
return Emails.class.equals(clazz);
}
@Override
public boolean isValid(Email emails,ConstraintValidatorContext cxt) {
.......
}
}
和我的控制器类:
@RestController
@Validated
class RestController{
@GetMapping("/{Id}/emails")
public Page<EmailDTO> getEmails(@PathVariable String Id,@checkEmails Email emails,Pageable pageable) {
return customerService.getEmails(customerId,emails,pageable);
}
以及当我想使用模仿者为getEmails方法的控制器创建模仿者时,例如:
@Before
public void setUp() {
this.mockmvc= mockmvcBuilders.standalonesetup(customerController).setValidator(new checkEmailsValidator()).setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver()).build();
}
除了setValidator的Validator类型的参数外,它给出错误,但我正在传递constraintValidator类型的对象。如何解决?
,如果我从setValidator方法中删除了checkEmailsValidator,则由于缺少验证器,因此我无法检查BadRequest条件。如何检查BadRequest条件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)