# JSP- Table



## Generic1 (30. Okt 2010)

Hallo, 

ich hab in meiner JSP folgenden Code unten, mit dem die Teilnehmer aufgelistet werden.
Das klappt alles ganz gut, solange nicht zu viele aufgelistet werden, ansonsten geht die Table über den footer drüber. Daher möchte ich jetzt eine zweite, dritte, n-te Seite machen, wenn die Teilnehmer nicht auf eine Seite draufpassen.
Meine Frage wäre jeztzt, wie ich das mit den JSTL am besten machen kann?
lg


```
<tbody>
                   <c:forEach items="${registeredparticipant}" var="participant">
                        <tr>
                            <td><c:out value="${participant.address.nationality}" /></td>
                            <td><c:out value="${participant.firstname}" />
                            <c:out value="${participant.surname}" /></td>
                            <td><c:out value="${participant.address.zipcode}" /></td>
                            <td><c:out value="${participant.address.city}" /></td>
                            <td><c:out value="${participant.born.born}" /></td>
                            <td><c:out value="${participant.club.clubname}" /></td>
                        </tr>
                    </c:forEach>
               </tbody>
```

Ich habe übrigens diese 3 STL's in meine JSP inklutiert:


```
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
```


----------



## mvitz (30. Okt 2010)

Das Zauberwort nennt sich hier Paginating, bzw. Paging.

Wenn du das ganze per Hand machen möchtest, dann solltest du folgendermaßen vorgehen:

1) Die Klasse, über die du an die "registeredparticipant" kommst, sollte folgende Methoden zur Verfügung stellen:
int getNumberOfParticipants();
List<Participant> getParticipants(int from, int till);

Dann kannst du dir die Anzahl der Participants holen, diese Zahl durch die ANzahl der darstellbaren Personen Teilen, damit weißt du schon wieviele Seiten du brauchst.
Anschließend kannst du dann auf Seite 1 die Personen von 1 (oder 0 je nachdem wie du zählen möchtest) bis X holen. Auf Seite zwei dann von X+1 bis X+1+X usw.

Alternativ könntest du dir anschauen, ob du das ganze irgendwo als fertige Komponenten für JSP findest.


----------



## Generic1 (1. Nov 2010)

>> Anschließend kannst du dann auf Seite 1 die Personen von 1 (oder 0 je nachdem wie du zählen möchtest) bis X holen

Da ist mir die Abfrage nicht ganz klar, ich muss ja das Ergebnis der SELECT- Anweisung irgendwie sortieren und dann erst sagen: von 1 - 10, von 11 - 20 usw.
In der DB sind ja die Einträge willkürlich gespeichert, oder sehe ich da was falsch?
lg


----------



## maki (1. Nov 2010)

> In der DB sind ja die Einträge willkürlich gespeichert, oder sehe ich da was falsch?


Das siehst du falsch, mvitz hat es schon erklärt 

Deine Abfrage ist sortiert, und bei SQL kann man auch angeben, dass man das Ergebnis ab Index x und Anzahl y haben will.


----------

