2
Spring MVCでカスタム検証を行うことができません。私はそれのためのパラメータとカスタムバリデーターのための独自の注釈を実装しましたが(すべてが以下に示されています)、検証は決して行われません。すべてのアイデアは本当に感謝しています。RequestParamのカスタム検証がSpring MVCで動作しない
コントローラ
@Validated
@RestController
public class FooController {
@RequestMapping(value = "/somepath",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public String get(@CustomParam @RequestParam(String fooParam) {
return "Hello";
}
}
カスタムリクエストパラメータ
@Documented
@Constraint(validatedBy = CustomValidator.class)
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomParam {
String message() default "Wrong!";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
カスタムバリデータ
@Component
public class CustomValidator implements ConstraintValidator<CustomParam, String> {
@Override
public void initialize(CustomParam param) {}
@Override
public boolean isValid(String givenParam, ConstraintValidatorContext context) {
// some custom validation is here, never enter this method though
}
}