Я хотел бы знать, как создавать формы, использующие th:object
для каждого объекта, зацикленного в th:each
.Например, у меня есть следующий код.
HTML
<th:block th:each="store: ${stores}">
<form th:object="${store}" th:action="@{/modify-store}">
<input th:field="*{idStorePk}"/>
<input th:field="*{name}"/>
<input th:field="*{phoneNumber}"/>
<button type="submit">Modify</button>
</form>
</th:block>
Контроллер
@RequestMapping(value = "/stores")
public String getIndex(Model model) {
model.addAttribute("stores", storeService.getAllStores());
return "store";
}
Итак, яхотел бы добавить форму для каждого объекта, но кажется, что это невозможно, и я получаю следующую ошибку.
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'store' available as request attribute
Итак, я решил добавить @ModelAttribute
в моем контроллере, но могуне вернуть фактическое хранилище.
@ModelAttribute("store")
public Store getStore(Store store) {
return store;
}
При таком подходе все мои формы имеют нулевые значения.Я также пытался добавить @PathVariable
, но не могу связать его с помощью th:object
.Есть ли решение для этого?