У меня есть класс с этим полем в:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate passDate;
Я создал две переменные LocalDate, которые я хочу проверить между (например)
LocalDate a = LocalDate.of(1995, 1, 01);
LocalDate b = LocalDate.of(2140, 12, 31);
Я использовал @PastOrPresent, но это не мешает пользователям вводить дату, например, 3050 год.
Я начал создавать метод в классе домена, где находится поле passDate, однако я действительно не знаю, гдеидет проверка и как вызвать этот метод проверки.(Вот фрагмент того, что я пытался сделать, но не уверен, куда его поставить? (Может быть, это тоже неправильно!))
if (!(passDate.isBefore(a) && passDate.isAfter(b))) {
return passDate; }
Не был уверен, к чему это приведет?Какой метод?Как я могу назвать это подтверждение?или есть другой способ.Я долго смотрел онлайн и не могу понять, что делать.У меня есть форма чабреца с этим полем (которая использовала проверку PastOrPresent для возврата сообщения об ошибке при отправке)
<div class="form-group">
<label for="pass_date">Enter the pass date</label>
<input type="date" th:field="*{passDate}" name="pass_date" id="pass_date"
class="form-control"/>
<p class="text-danger" th:if="${#fields.hasErrors('passDate')}" th:errors="*{passDate}"></p>
</div>
Вот почтовый контроллер
@PostMapping("/admin/examform")
public String createExamForm(@ModelAttribute("examform") @Valid Examform examform,
BindingResult bindingResult,
@AuthenticationPrincipal final User user, Model model){
if (bindingResult.hasErrors()) {
System.out.println(bindingResult.getAllErrors());
model.addAttribute("examform", examform);
return "examformhtml";
}else{
examformservice.createExamForm(examform);
model.addAttribute("loggedInUsername", user.getUsername());
return "examformsuccess";
}
}
Где examformservice - этопеременная класса моего сервиса, которая ссылается на мой репозиторий,
@Override
public void createExamForm(Examform examform) {
String sql = "UPDATE examform SET passDate=? WHERE studentId=?";
jdbcTemplate.update(sql, examform.getPassDate(), examform.getStudentId());
}
Куда я положу валидацию?и что будет вход?