Почему контроллер не принимает объект обратно от View? Имеется такая ситуация, что на контроллер с адресом "/teacher/createLesson/confirm" должен приходить объект absentDAO, но он приходит пустой.
Текст контроллеров. Первый отправляет данные в форму, второй отвечает за её получение
@PostMapping("/teacher/createLesson")
public String postCreateLessonChoose(Model model, Principal principal, @RequestParam(name = "goodGroup") String goodGroup, @RequestParam(name = "goodSubject") String goodSubject){
//Select info from database
APP_User user = userRepository.findByUsername(principal.getName()).get();
Group group = groupRepository.findByName(goodGroup).get();
Subject subject = subjectRepository.findByName(goodSubject).get();
List<APP_User> students = userRepository.findByGroup(group);
//Create list with absent
List<Absent> absents = new ArrayList<>();
absents.add(absentRepository.findByName("Присутствует").get()); // be careful!
absents.add(absentRepository.findByShortname("НБ").get());
//Take current date
DateTimeFormatter d = DateTimeFormatter.ofPattern("dd.MM.yyyy");
String date = LocalDate.now().format(d);
//DAO for form in frontend
createAbsentDAO absentDAO = new createAbsentDAO();
for (int i = 0; i < students.size(); i++) {
APP_User student = students.get(i);
absentDAO.addObjectToList(new AbsentWithStudent(student.getId(), student.getFirstname(), student.getLastname(), absents, date));
}
//Sent DAO to frontend
model.addAttribute("absentDAO", absentDAO);
// model.addAttribute("absentList", absents);
return "/teacher/createLesson";
}
@PostMapping("/teacher/createLesson/confirm")
public String confirmCreateLesson(Model model, @ModelAttribute createAbsentDAO absentDAO){
System.out.println("DAO count: " + absentDAO.getList().size());
return "/teacher/main";
}
Код из формы:
<div class="row justify-content-center">
<div class="col-6 mt-4 shadow p-3 mb-5 ml-3 mr-3 bg-white rounded">
<p class="mt-1 mb-1 font-weight-light text-primary h2 mx-auto bg-white rounded">Выбор предмета и группы</p>
<form action="#" th:action="@{/teacher/createLesson/confirm}" method="post" th:object="${absentDAO}">
<table class="table table-bordered">
<thead>
<tr>
<th>Студент</th>
<th>Data</th>
</tr>
</thead>
<tbody>
<tr th:each="dao,itemStat : ${absentDAO.list}" th:field="${absentDAO}">
<td th:text="${dao.lastname}" th:value="${dao.lastname}"></td>
<td>
<select>
<option th:each="absentList2 : ${dao.absentList}" th:value="${absentList2.shortname}" th:text="${absentList2.shortname}"></option>
</select>
</td>
<!-- HIDDEN!!!!!-->
<!-- <input type="hidden" name="group" th:field="*{group}">-->
</tr>
</tbody>
</table>
<button type="submit" class="btn btn-primary mx-auto">Создать</button>
</form>
</div>
</div>
Объект который возвращается ко второму контроллеру: