Spring Validator для сравнения даты с другой в базе данных - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу написать валидатор, который проверит, достаточно ли взрослый пользователь, чтобы быть родителем другого пользователя.Так, например, у меня есть этот код, где я получаю информацию о форме и могу проверить ошибки:

    @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;   
    }

}

, нопотом понял, что не могу получить вторую дату пользователя для этого валидатора для сравнения.Как это сделать?Спасибо

...