我有下一个名为 的 jsp 文件Bookstore.jsp
,其中我用数据库中的数据填充了一个表。
<%
ArrayList<Book> b = new ArrayList<Book>();
b = SqlSentencesList.showCatalog(); // this method returns an arrayList with all books
%>
<form method="get" action="ShoppingCarController">
<table border="2">
<tr>
<th>ISBN</th>
<th>Title</th>
<th>Author</th>
<th>Price</th>
<th>Select</th>
</tr>
<%for(int i=0; i<l.size();i++){%>
<tr>
<td> <%out.print(b.get(i).getIsbn());%> </td>
<td> <%out.print(b.get(i).getTitle());%> </td>
<td> <%out.print(b.get(i).getAuthor());%> </td>
<td> <%out.print(b.get(i).getPrice());%> </td>
<th> <input type="checkbox" name="checkboxGroup" value="<%Integer.toString(i);%>"/> </th>
</tr>
<% } %>
</table>
<input type="submit" value="Add to shopping car"/>
</form>
现在,我需要 Servlet 中的相同图书数据(ISBN、书名、作者和价格),但仅来自选定的图书数据。
这是我来自 ShoppingCarController servlet 的 doGet 方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<Book> shoppingCar = new ArrayList<Book>();
String[] values = request.getParameterValues("checkboxGroup");
for(int i=0; i<values.length; i++) {
System.out.println(values[i]);
}
}
我试图打印它以查看我得到了什么,但控制台中没有显示任何内容。
我在看这个类似的案例:How to pass data from selected rows using checkboxes from JSP to the server我认为我的问题出在value
属性上,但我不知道该问题中使用的语法,不明白for each
和<c:out
标签;简而言之,我不知道如何调整我的代码以使其正常工作。
有人帮我一把。