@Kirill_mont

Как получить конкретный элемент цикла?

Короче говоря, я сейчас пытаюсь работать с jstl, у меня есть цикл foreach, который создаёт карточки товара по шаблону: Имя, цена, время подачи, кнопка Add to cart. Так вот, при нажатии кнопки информация о товаре записывается в лист для дальнейшей обработки, но сейчас я могу получить таким образом только 1-й элемент. Вопрос следующий, как получить тот элемент, на карточке которого была нажата кнопка? Например, 5й.

Читал про varStatus, но не очень понял как его применить.
<section>
    <form action="Controller" method="post">
    <sql:query dataSource = "${snapshot}" var = "result">
        SELECT * from menu where category='alcohol';
    </sql:query>
    <c:forEach var = "row" items = "${result.rows}">
        <div class="product-item">
            <div class="product-list">
                <h3><c:out value = "${row.name}"/> per bottle</h3>
                <input type="hidden" name="name" value="${row.name}"/>
                <span class="price">Price: $<c:out value = "${row.price}"/> </span>
                <input type="hidden" name="price" value="price">
                <span class="time">Filing time: <c:out value = "${row.time}"/>min</span>
                <input type="hidden" name="command" value="addtocart" />
                <input type="submit" class="button" value="Add to cart">
            </div>
        </div>
    </c:forEach>
    </form>
</section>
  • Вопрос задан
  • 157 просмотров
Решения вопроса 2
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
После того, как шаблон был создан при помощи шаблонизатора и отдан клиенту, Java, jsp и т.д не играли роли. Дальше средствами js вы можете получить элемент, который был кликнут и I'd элементы например,при помощи ajax передать в бекэнд. Для этого нужны знания Javascript. Возможно, применение jquery
Ответ написан
@Kirill_mont Автор вопроса
Решил проблему не используя JS, не знаю, как я раньше не додумался, все нужные парамертры можно передать по ссылке, например:
<a href="Controller?command=addtocart&name=${row.name}&price=${row.price}&time=${row.time}" class="button">Add to cart</a>

Где
&name=${row.name}&price=${row.price}&time=${row.time}

И есть параметры, которые будут переданы в сервлет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽