Я хочу написать валидатор, который проверит, достаточно ли взрослый пользователь, чтобы быть родителем другого пользователя.Так, например, у меня есть этот код, где я получаю информацию о форме и могу проверить ошибки:
@RequestMapping(value = "/setParent", method = RequestMethod.POST)
public ModelAndView setParent(@Valid @ModelAttribute("person") Person parent, BindingResult bindingResult,
HttpServletRequest request) {
logger.info("set parent controller");
if (bindingResult.hasErrors()) {
return new ModelAndView("index", "parent", parent);
} else {
String personName = request.getParameter("personName");
String relation = request.getParameter("relation");
Person person = new Person(personName, null);
int pID = databaseModel.getPersonID(person);
int parentID = databaseModel.getPersonID(parent);
int rID = databaseModel.getRelationID(relation);
databaseModel.insertRelation(pID, parentID, rID);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("setParentSuccess");
modelAndView.addObject("parent", databaseModel.getPersonTree(parentID));
return modelAndView;
}
}
Я начал писать собственный валидатор:
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Constraint(validatedBy = CheckOlderThanValidator.class)
@Target({ ElementType.FIELD })
public @interface OlderThan {
String message() default "my custom validator";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class CheckOlderThanValidator implements ConstraintValidator<OlderThan, Date> {
@Autowired
private DatabaseModel model;
@Override
public boolean isValid(Date date, ConstraintValidatorContext arg1) {
return false;
}
}
, нопотом понял, что не могу получить вторую дату пользователя для этого валидатора для сравнения.Как это сделать?Спасибо