Сначала я создал форму в простом HTML с помощью Thymeleaf, и все было в порядке. Затем перешел к шагу 2, и я переместил свою форму во фрагмент. Я назвал фрагмент так:
<div th:insert="~{address::form($(address)}"></div>
а фрагмент (который находится в address.html) выглядит следующим образом:
<form th:fragment="form(address)" action="#" th:action="@{/address}" th:object="${address}" method="post">
<label>Street<label><span><input type="text" th:field="*{street}"></span>
<label>County:</label>
<span>
<select th:field="*{county}">
<option th:each="s : ${countyList}" th:value="${s.value}" th:text="${s.text}"></option>
</select>
</span>
...
но это не работает и выдает: java.lang.IllegalStateException: Ни BindingResult, ни простой целевой объект для bean-компонента с именем street, доступный в качестве атрибута запроса
Пожалуйста, помогите с тем, как переместить всю форму во фрагмент Thymeleaf? Также добавьте идеи для комбо, чтобы я мог получить их список из бина модели. Спасибо!
PS контроллер сейчас выглядит так (добавление и редактирование), но вместо этого он будет работать, чтобы сделать его 1 функцией:
@GetMapping(value="/address")
public String newAddress(AddressModel address, Model model) {
model.addAttribute("address", address);
model.addAttribute("countyList", countyService.listCombo());
...
return "index";
}
@GetMapping(value="/address/{id}")
public String editAddress(Model model, @PathVariable("id") Long id) {
AddressModel address = addressService.load(id);
model.addAttribute("address", address);
model.addAttribute("countyList", countyService.listCombo());
...
return "index";
}