<form action="#" th:action="@{/save}" th:object="${product}" method="post">
<table border="0" cellpadding="10">
<tr>
<td>Наименования:</td>
<td><input required type="text" th:field="*{name}"/></td>
</tr>
<tr>
<td>Описание:</td>
<td><input required type="text" th:field="*{description}"/>
</td>
</tr>
<tr>
<td>Категория:</td>
<td>
<input required type="text" th:field="*{category}"/>
<!-- Проблема! значение из option не происвается в product-->
<select class="form-select form-select-sm" aria-label=".form-select-sm example">
<option selected>Выберите котегорию</option>
<option th:each="category : ${categoryList}" value="${category.id}"
th:text="${product.category}"></option>
</select>
</td>
</tr>
<tr>
<td>Цена:</td>
<td><input required type="number" th:field="*{price}" pattern='[0-9]+(\\.[0-9][0-9]?)?'/></td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn btn-primary">Сохранить</button>
</td>
</tr>
</table>
</form>
// добавить продукт
@RequestMapping("/new_product")
public String showNewProductForm(Model model) {
Product product = new Product();
List<Category> category = categoryService.getAll();
model.addAttribute("categoryList", category);
model.addAttribute("product", product);
return "new_product";
}
List<Category> category = categoryService.getAll();
th:field="*{category}"
category :
на что-нибудь другое. Например, cat
и соответственно, смените его в соответствующих строках тоже.<option th:each="category : ${categoryList}" value="${category.id}"
th:text="${product.category}"></option>
th:text="${product.category}"
product.category
, а так как product новый: Product product = new Product();
, то и присвоенной категории для него тоже не будет.