Я получил это html:
<form action="#" th:action="@{${cartServiceBaseUrl}+'/addCatalogItemToCart'}" th:object="${cartCatalogItem}" method="post">
<input type="hidden" th:value="${cartId}" th:field="*{cartId}" />
<input type="hidden" th:value="${catalogItem.catalogItemId}" th:field="*{catalogItemId}" />
<input type="submit" value="add to cart" />
</form>
К сожалению оба значения равны нулю , и я не совсем понимаю, почему, потому что оба значения, cartId
и catalogItem.catalogItemId
доступнына странице.Как мне правильно передать их?
Конечная точка Java
@PostMapping(ADD_CATALOG_ITEM_TO_CART)
public void addCatalogItemToCart(@ModelAttribute CartCatalogItem cartCatalogItem, HttpServletResponse response) {
Полный HTML:
<h1 th:text="${catalog.name}">...</h1>
<a th:href="@{${customerServiceBaseUrl}+'/home/'+__${cartId}__}">home</a>
<p th:text="'Catalog ID:'+${catalog.catalogId}"></p>
<p th:text="'Name: '+${catalog.name}"></p>
<table>
<th:block th:each="catalogItem : ${catalog.catalogItems}">
<tr>
<th>article id</th>
<th>catalogitem id</th>
<th>name</th>
<th>price</th>
</tr>
<tr>
<td th:text="${catalogItem.articleId}">...</td>
<td th:text="${catalogItem.catalogItemId}">...</td>
<td th:text="${catalogItem.name}">...</td>
<td th:text="${catalogItem.price}">...</td>
<td><form action="#" th:action="@{${cartServiceBaseUrl}+'/addCatalogItemToCart'}" th:object="${cartCatalogItem}" method="post">
<input type="hidden" th:value="${cartId}" th:field="*{cartId}" />
<input type="hidden" th:value="${catalogItem.catalogItemId}" th:field="*{catalogItemId}" />
<input type="submit" value="add to cart" />
</form></td>
</tr>
</th:block>
</table>
Моя цель: назначить атрибуты объектам со скрытыми полями ввода и передать их для методов контроллера.