значение тимелина до html выберите вход - PullRequest
1 голос
/ 26 февраля 2020

Контроллер

@GetMapping("/kosik")
public String kosik(Principal principal,Model model){
    User user = userServices.findByEmail(principal.getName());
    Cart cart = cartServices.findCartByUser(user);
    model.addAttribute("produkty",cartItemServices.findAllCartItems(cart));
    model.addAttribute("cart",cartServices.findCartByUser(user));
    model.addAttribute("user",user);
    return "cart";
}

Html

<ul class="list-group mb-3">
                <li th:each="produkt: ${produkty}" class="list-group-item d-flex justify-content-between lh-condensed">
                    <div>
                        <h6 th:text="${produkt.product.name}" class="my-0"></h6>
                    </div>
                    <span th:text="${produkt.price}" class="d-inline-block"></span><span class="d-inline-block"> €</span>

                    <form th:action="@{/updateCartItem(name=${produkt.product.name})}" th:object="${cartItem}" method="post">
                        <select th:field="*{quantity}">
                            <option th:value="1">1</option>
                            <option th:value="2">2</option>
                            <option th:value="3">3</option>
                            <option th:value="4">4</option>
                            <option th:value="5">5</option>
                        </select>
                        <input type="submit" value="Update" class="btn-sm btn-primary" />
                    </form>
               </li>
            <li th:each="kosik: ${cart}" class="list-group-item d-flex justify-content-between">
                <span>Total Price</span>
                <strong th:text="${kosik.totalPrice}"></strong>
            </li>
        </ul>

Все обновляется, работает нормально, но я не могу получить текущее количество cartItem для выбора th: field, оно по-прежнему 1, я также попробовал th: выбрал, но не работал ..

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

В тимелистном поле th: перезаписывает th: значение. По сути, мы не можем присвоить значение и передать его одновременно, используя th: field и th: value.

Чтобы получить раскрывающееся значение, выбранное пользователем в Backend, необходимо изменить параметр th: field с помощью th: id = "name" th: name = "name" и th: value остаются без изменений.

Примечание: здесь "name" подразумевает атрибут класса модели, с которым он будет отображаться или десериализоваться.

0 голосов
/ 26 февраля 2020

Чтобы исправить это, вам нужно удалить th: field и заменить его на атрибуты name и id.

<select id="quantity" name="quantity">
    <option value="1">1</option>
    ...
    <option value="5">5</option>
    <option value="6" selected="selected">6</option>
     ...
    <option value="10">10</option>
</select>
...