2017-03-17 11 views
0

Ich erstelle Liste:jstl foreach Iterate Liste mit Klasse

List<CheckoutDb> people = new ArrayList<CheckoutDb>(); 

ich Informationen aus der Datenbank erhalten und es in die Klasse hinzufügen:

CheckoutDb checkout = new CheckoutDb(rs.getInt("CheckOutNumber"),rs.getString("FirstName")); 

i fügen Sie dann, dass auf der Liste:

people.add(checkout); 

kann ich dies tun, um die Liste auszudrucken:

for (CheckoutDb test : people) { 
    System.out.println(test.getCheckOutNumber() + test.getFirstName()); 
} 

ich sende die Liste in eine jsp-Datei:

request.setAttribute("people", people); 

Meine Frage ist: Wie ich in jstl dass gleiche Iteration tun kann?

Ich habe dies getan, aber nicht die gleiche ausdrucken:

<c:forEach items="${people}" var="item"> 
     <td> ${item}</td> 
    </c:forEach> 

    <c:forEach items="${people}" var="item"> 
     <td> ${item.getFirstName()}</td> 
    </c:forEach> 

    <c:forEach items="${people}" var="item"> 
     <td> ${people}</td> 
    </c:forEach> 

Ausgänge: [email protected], [email protected], [email protected] , [email protected],

, wenn ich tun:

${people.size()} 

gibt es richtige Größe

und wenn ich dies tun, druckt es nur letzte Element in der Liste:

 <c:forEach var="people" items="${checkedOutList}"> 
     <tr> 
      <td>${people.firstName} ${people.lastName}</td> 

     </tr> 
     </c:forEach> 

Antwort

0

Ihr Java-Code keine CheckoutDb drucken, wie Sie in Ihrem JSP-Code tun .. Es ist auch nicht Drucken Sie die gesamte Liste wie im JSP-Code.

Es druckt die checkOutNumber Eigenschaft und die firstName Eigenschaft jedes Element in der Liste. Also das Äquivalent wäre (unter der Annahme, dass Sie eine Tabellenzeile pro Artikel wünschen)

<c:forEach items="${people}" var="item"> 
    <tr> 
     <td><c:out value="${item.checkOutNumber}" /></td> 
     <td><c:out value="${item.firstName}" /></td> 
    </tr> 
</c:forEach> 
+0

Ich tat dies vor, aber nichts druckt, ist völlig leer. – adrianhmartinez

+0

Dann ist Ihre Personenliste wahrscheinlich leer. –

+0

aber wenn ich $ {books.size()} mache, bekommt es genau die Menge, die ich einlege. – adrianhmartinez

Verwandte Themen