Почему не работает input в форме?

338
01 августа 2017, 15:26

Есть список товаров на jsp у каждого есть свой id. При при нажатии на кнопку More в сервлет должен приходить запрос с id товара. Но прихоит всегда зеачение 1.

<form method="get" action="get_all_proposes/get_propose_by_id">
    <c:forEach var="propose" items="${requestScope.allProposes}">
        <ul>
            <li>Model: <c:out value="${propose.model}"/></li>
            <li>Mark: <c:out value="${propose.mark}"/></li>
            <li>Sold: <c:out value="${propose.sold}"/></li>
            <input name="pId" type="number" value="${propose.id}">
            <input type="submit" value="More">
            <hr>
        </ul>
    </c:forEach>
</form>

На сервере это принимается так:

final int pId = Integer.valueOf(req.getParameter("pId"));

Почему всегда приходит 1? Как это исправить?

Answer 1

допустим у вас есть три объекта

<ul>
    ...
    <input name="pId" type="number" value="1">
    <input type="submit" value="More">
</ul>
<ul>
    ...
    <input name="pId" type="number" value="2">
    <input type="submit" value="More">
</ul>
<ul>
    ...
    <input name="pId" type="number" value="3">
    <input type="submit" value="More">
</ul>

И все это находится в одной форме! При нажатии любого из submit на сервер улетают значения всех input, то есть строка запроса будет выгляеть примерно так: get_all_proposes/get_propose_by_id?pId=1&pId=2&pId=3. На сервере вы, скорее всего, ловите только первый. Я бы посоветовал вам исправить

<input type="submit" value="More">

на

<a href="get_all_proposes/get_propose_by_id?pId=${propose.id}">More</a>
READ ALSO
Стилизация блоков Bootstrap

Стилизация блоков Bootstrap

Доброго времени суток

336
Как найти не используемые CSS?

Как найти не используемые CSS?

Существует ли какой-нибудь онлайн сервис, чтобы в одно окно можно было вставить html-код страницы, в другое css-файл и он выдал какие стили не используются...

306
Обновление свойства через event, MVVM

Обновление свойства через event, MVVM

Не получается обновить свойство в ViewModel и соответственно View через событие

322