Используя форму тимилиста и режим гибернации, я хочу передать модель в форму, заполнить ее значения в представлении, а затем проверить и создать этот объект. Проблема в том, что когда я передаю модель в форму, я получаю ошибку проверки.
После этого урока: https://www.baeldung.com/spring-boot-crud-thymeleaf
Полный проект можно загрузить здесь: https://github.com/pyrovoice/BusTraining.git
Сопоставление:
@GetMapping("/createbusvehicle")
public String createBusVehicleDisplay(BusVehicle busVehicle) {
return "createBusVehicle";
}
@PostMapping("/createbusvehicle")
public String checkAndCreateBusVehicle (@Valid BusVehicle newBusVehicle, BindingResult bindingResultModel, Model model) {
busVehiculeRepository.save(newBusVehicle);
return "mainpage";
}
HTML:
<form action="#" th:action="@{/createBusVehicle}" th:object="${busVehicle}" method="post">
<p>plateNumber: <input type="text" th:field="*{plateNumber}" /></p>
<p>passengerCapacity: <input type="text" th:field="*{passengerCapacity}" /></p>
<select name="color">
<option th:each="colorOpt : ${T(com.grazzini.model.BusVehicleColor).values()}"
th:value="${colorOpt}" th:text="${colorOpt.displayValue}"></option>
</select>
<select name="type">
<option th:each="typeOpt : ${T(com.grazzini.model.BusVehicleType).values()}"
th:value="${typeOpt}" th:text="${typeOpt.displayValue}"></option>
</select>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
поле, которое создает проблему в BusVehicle:
@NotNull
@Min(0)
@Max(70)
@Column(name = "BUSVEHICULE_PASSENGERCAPACITY")
private int passengerCapacity;
При удалении BusVehicle busVehicleиз метода createBusVehiculeDisplay у меня появляется ошибка «Ни BindingResult, ни простой целевой объект для имени компонента« busVehicle »не доступны в качестве атрибута запроса». При этом у меня появляется «Ошибка поля в объекте« busVehicle »в поле« passengerCapacity »: отклоненное значение [null]; [...]»