Ich habe einen benutzerdefinierten Constraint-Validator erstellt, der auf einer Liste von Objekten funktioniert. Leider scheint es nicht aufgerufen zu werden, es funktionierte, als ich eine Wrapperklasse hatte, die die Liste mit der Anmerkung in der Liste enthielt.Benutzerdefinierter Spring-Validator wird nicht aufgerufen
Dies ist der Code, der feine
public class wrapper {
@ValidMyObjectList
List<MyObject> myObjects;
...
}
gearbeitet Aber jetzt habe ich loswerden der Wrapper-Klasse und hinzugefügt, um die Anmerkung zu den Parameter in der Controller-Methode bekam.
Hier ist der Controller
@RequestMapping(value = "", method = RequestMethod.POST)
public List<MyObject> stopCheque(
@ValidMyObjectList @RequestBody final List<MyObject> myObjects,
final HttpServletResponse httpServletResponse) {
....
}
Hier ist die Einschränkung Anmerkung
@Constraint(validatedBy = MyObjectListValidator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.PARAMETER })
public @interface MyObjectList {
Class<?>[] groups() default {};
String message() default "";
Class<? extends Payload>[] payload() default {};
}
Und ein Teil des Prüfers selbst
public class MyObjectListValidator implements
ConstraintValidator<MyObjectList, List<MyObject>> {
@Override
public void initialize(final MyObjectList myObjectList) {
}
@Override
public boolean isValid(final List<MyObjectList> myObjectLists, final ConstraintValidatorContext cxt) {
...
}
sehr jede mögliche Hilfe schätzen würde. Dank