Ich habe die nächste JSP-Datei namens Bookstore.jsp
, in der ich eine Tabelle mit Daten aus einer Datenbank gefüllt.Holen Sie sich ausgewählte Zeilen aus einer HTML-Tabelle mit Servlets und 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>
Nun, ich brauche die gleichen Buchdaten (ISBN, Titel, Autor und Preis) in der Servlets, sondern nur von den ausgewählten.
Dies ist meine Methode doGet von ShoppingCarController Servlet:
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]);
}
}
Ich habe versucht, es gedruckt, um zu sehen, was ich bekommen, aber nichts zeigt in der Konsole auf.
Ich war in diesem Fall ähnlich suchen: How to pass data from selected rows using checkboxes from JSP to the server und ich denke, mein Problem mit den value
Attributen, aber ich weiß nicht, die Syntax in dieser Frage verwendete, nicht verstehen, dass for each
und die <c:out
Tags; Kurz gesagt, ich weiß nicht, wie ich meinen Code anpassen soll, damit er funktioniert.
Jemand geben Sie mir eine Hand damit.
Ein Buch hat einen Titel, einen Autor, einen Preis und eine ISBN-Nummer. Ich benutze das, um die Tabelle zu füllen, ich kann die ISBN (das wäre die ID) nur nicht übergeben. –
Ich habe basierend auf Ihrem Servlet-Code-Snippet geantwortet. –