Есть список товаров на 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? Как это исправить?
допустим у вас есть три объекта
<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>
Продвижение своими сайтами как стратегия роста и независимости