Вы можете создать форму на каждой итерации, чтобы получить конкретную upc для каждой строки, а не для упаковки всей вашей таблицы.
У меня есть таблица, которая хранит продукт в корзине пользователя. Каждая строка имеет кнопку, которая позволяет пользователю удалять один продукт из корзины пользователя. Вот фрагмент кода моего html.
<form action="${pageContext.request.contextPath}/customer/removeProduct" method="post">
<input type="hidden" name="page" value="${page}">
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Quantity</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<c:forEach items="${productsInCart}" var="product"
varStatus="status">
<input type="hidden" class="form-control" name="upc"
value="${product.getUpc()}">
<tr class="warning">
<td>${product.getName()}</td>
<td>${product.getQuantity()}</td>
<td style="color: green;">₱ ${product.getTotal()}</td>
<td><input type="submit" class="btn btn-warning btn-xs"
value="Remove from cart"></td>
</tr>
</c:forEach>
</tbody>
</table>
</form>
Вот результат.
Продукт в корзине
Значение, которое я хочу получить, - это UPC продукта, который хранится в поле скрытого ввода. Однако, когда нажата кнопка «удалить из корзины», она возвращает все UPC продукта, находящегося в корзине. Вот фрагмент кода контроллера.
@RequestMapping(value="/customer/removeProduct", method=RequestMethod.POST)
public String removeProduct(@RequestParam(value = "upc") String upc, HttpServletRequest request){
System.out.println(upc);
// customerService.removeProductInCart(customer.getCustomer(request).getCartId(), upc);
return "customer_home";
}
java,html,jsp,spring-mvc,jstl,