Eine Sache, die ich an JSTL nie mochte (ich glaube, das ist die einzige Sache :)) ist die Tatsache, dass es keine Möglichkeit gibt, die Größe einer Liste/Sammlung abzurufen.
EDIT: Ok, es war also möglich, aber ich wusste es nicht :( siehe hier .
Le site forEach
Tag hat die varStatus
Attribut, mit dem Sie den Index der Zeile bestimmen können ( index
/ count
Eigenschaften auf der varStatus
Variable), aber Sie müssen prüfen, ob Sie sich an der letzten Position in der Liste befinden, d.h. Sie müssen die Listengröße vorher kennen:
<c:forEach items="${fileList}" var="current" varStatus="status">
...
<c:if test="${not (status.count eq listSize)}">,</c:if>
</c:forEach>
Allerdings müssen Sie die listSize
in den Geltungsbereich, manuell, bevor Sie diese Art von Dingen tun.
In einem meiner Projekte habe ich selbst ein Tag erstellt, das eine Sammlung aufnimmt und den Wert zurückgibt:
<myLib:collectionSize collection="${fileList}" var="listSize" />
<c:forEach items="${fileList}" var="current" varStatus="status">
...
<c:if test="${not (status.count eq listSize)}">,</c:if>
</c:forEach>
Sie könnten das Gleiche tun, wenn Sie diese Art von Code häufig haben (ansonsten können Sie ihn einfach in den Geltungsbereich einfügen, was immer für Sie bequem ist).
0 Stimmen
Alle Elemente brauchen das }, aber das letzte darf kein Komma haben,