我是Java EE的初学者,我已经开始实施一个小型在线书籍商店购物车示例,以学习和应用基本概念。 当用户搜索书籍时,它会显示建议书籍列表,然后用户通过单击“添加到购物车”按钮开始添加到购物车中。
我使用了隐藏的输入类型来发送它。
下面是我的JSP代码。
<%
List<BookDetails> newlist = new ArrayList<BookDetails>();
newlist = (List)session.getAttribute("currentSession");
%>
<table>
<form name="DisplayResult" action="addToCartServlet">
<tr>
<td><b>Book</b></td><td><b>Price</b></td>
</tr>
<%
for (int i = 0; i < newlist.size(); i++)
{
BookDetails book1 =newlist.get(i);
%>
<tr>
<td><%=book1.getBookName()%></td>
<td><%=book1.getPrice()%></td>
<td>
<input type="hidden" name="ISBN" value="<%=newlist.get(i).getISBN()%>">
<input type="submit" name="action" value="Add to Cart">
</td>
</tr>
<% }%>
</form>
</table>
我通过servlet访问它,如下所示。 String isbn = request.getParameter(“ISBN”);
但它每次只取任何按钮点击的第一个搜索结果值。 如何为每本书获取每个唯一的ISBN?
答案 0 :(得分:1)
答案 1 :(得分:1)
文本框如下:
<form:input path="contacts[${status.index}].book" />
<tr>
<td align="center">${status.count}</td>
<td><input name="contacts[${status.index}].book" value="${contact.book}"/></td>
<td><input name="contacts[${status.index}].price" value="${contact.price}"/></td>
</tr>
线的解释是:
contacts[${status.index}].book
它将按如下方式生成每一行:
contacts[0].book // mapped to first item in contacts list
contacts[1].book// mapped to second item in contacts list
contacts[2].book// mapped to third item in contacts list
行的解释是编码格式:
<form:input path="contacts[${status.index}].book" />
然后,而不是将其转换为以下HTML代码:
<input name="contacts[0].book" />
<input name="contacts[1].book" />
<input name="contacts[2].book" />
将其转换为以下内容:
<input name="contacts0.book" />
<input name="contacts1.book" />
<input name="contacts2.book" />