Thymeleaf - установить атрибуты для объектов в формах со скрытыми вводами - PullRequest
0 голосов
/ 23 декабря 2018

Я получил это 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>

Моя цель: назначить атрибуты объектам со скрытыми полями ввода и передать их для методов контроллера.

1 Ответ

0 голосов
/ 24 декабря 2018

Вы не устанавливаете свои значения из контроллера, поэтому оба значения имеют значение null.Используйте этот код на вашем контроллере.Например:

Model and View model=new Model and View ("Your thyme leaf template name");
model.put('your key name by which you an access on your thyme leaf 
 page',cart Id);
 return model;

Это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...