Ich kann keine benutzerdefinierte Validierung mit Spring MVC arbeiten. Ich habe eine eigene Annotation für Parameter und einen eigenen Validator implementiert (alles ist unten angegeben), aber die Validierung findet nie statt. Irgendwelche Ideen würden wirklich geschätzt werden.Benutzerdefinierte Validierung für RequestParam funktioniert nicht mit Spring MVC
-Controller
@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";
}
}
Benutzerdefinierte Request Parameter
@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 {};
}
Individuelle Validator
@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
}
}