Разграничение форм множественного ввода внутри оператора forEach - PullRequest
1 голос
/ 14 июля 2020

У меня есть массив String, длина переменная. Мне нужно создать для каждой строки две кнопки: купить и удалить . Они управляют количеством соответствующего элемента. Вот так: Resoult . Пробовал, работает но непонятно.

String go = request.getParameter("go");
if ((go != null)){
    String[] info = go.split(",");
    int index = Integer.parseInt(info[1]);
if (info[0].equals("+")) {
    ++quantita[index];
} else {
    --quantita[index];
}}

...

    <c:forEach var="i" begin="0" end="${length-1}" >
        <%
            int i = (int) pageContext.getAttribute("i");
            out.print(products[i] + " (" + quantita[i] +" in cart)");
        %>
        <input type=submit name="go" value="-,${i}"/>
        <input type=submit name="go" value="+,${i}"/><br>
    </c:forEach>

1 Ответ

1 голос
/ 14 июля 2020

Используйте <button type="submit"> вместо <input type="submit">. Этот элемент HTML позволяет вам устанавливать контент через дочерние элементы, а не через атрибут value. Таким образом, вы можете просто использовать атрибут name, чтобы указать действие, и атрибут value, чтобы указать идентификатор.

<button type=submit name="decrease" value="${i}">-</button>
<button type=submit name="increase" value="${i}">+</button>
String decrease = request.getParameter("decrease");
String increase = request.getParameter("increase");

if (decrease != null) {
    --quantity[Integer.parseInt(decrease)];
}
else if (increase != null) {
    ++quantity[Integer.parseInt(increase)];
}

Это понятнее?

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