java - Spring Validator 将日期与数据库中的另一个日期进行比较
问题描述
我想编写一个验证器,它将检查用户是否足够大,可以成为另一个用户的父母。因此,例如,我有这段代码,我可以在其中获取表单信息并检查错误:
@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;
}
}
但后来意识到我无法获得与该验证器进行比较的第二个用户日期。它是如何完成的?谢谢
解决方案
推荐阅读
- flutter - 如何使用 ListView 构建器在一行中显示 CheckboxListTile 文本?
- oracle - 如何从文本文件将数据加载到 oracle 表并使用 shell 脚本检查记录是否已存在?
- spring - Spring Access 日志按天轮换
- docker-compose - 将唯一 ID 传递给 docker-compose 容器?
- javascript - Csrftoken 未定义
- javascript - 如何在对象数组中转换具有两个数组的对象?
- python - 模型没有在 Django 中注册到管理员?
- elasticsearch - Elasticsearch 通过计数查询 DSL 过滤器
- reactive-programming - 无法从列表转换
> 列出 - google-cloud-platform - 如何在 GCP 云 SQL 中编辑机器类型