Wie das Inkrementieren einer Schleife Variablen mit JSTL?
Ich will mit der jstl so etwas wie dieses:
int i=0;
int j=0;
<c:forEach items="${commentNames}" var="comment">
<c:forEach items="${rates}" var="rate">
<c:if test="${i==j}">
int i++
</c:if>
</c:forEach>
int j++;
</c:forEach>
Ist dies möglich mit der jstl?Wenn ich versuche, das, schlug es mir Fehler und ich Frage mich, ob es die richtige Art, die Weise zu schreiben, es
- Sie wollen, um zu verwenden, c:set Inkrementieren des ich, der, den Sie versuchen zu verwenden, die ich als eigentliche variable.
- Während es möglich ist, dies zu tun mit JSTL, ich würde nicht empfehlen, es zu tun gibt. Ihre JSP sollte rein für Präsentation-Logik, nicht-business-Berechnungen.
- Ich versuche, ich als eigentliche variable
- ich verstehe, was Sie mir sagen, und ich Stimme mit Ihnen überein. Aber in diesem konkreten Anlass, dass ich es verwenden möchten, es gibt keinen anderen Weg.Also bitte, wenn Sie wissen, helfen Sie mir.
- Dies ist ein Fall, wo XY bricht. Obwohl die OP haben sollte, gefragt nach X, es gibt einige legitime Gründe für das tun von Y für die Präsentation und leider bekommen wir dabei nicht Y mit Ausnahme vielleicht der Kommentar von @DaveNewton.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht direkt, aber Sie können die
varStatus
um eine Instanz vonLoopTagStatus
im Rahmen<c:forEach>
. Es bietet mehrere Getter Abbildung unter anderem die loop - index und ob es die erste oder die Letzte iteration der Schleife.Ich bin nur unsicher, wie Sie Ihre
<c:if>
Sinn macht, aber ich denke, dass Sie tatsächlich zwei Listen der gleichen Größe mit Kommentar Namen und Kommentar-Tarife und dass Sie brauchen, um nur die rate auf den gleichen index wie der Kommentar.Dieser ist jedoch ungeschickt. Sie können besser die rate, die durch den index direkt.
Viel besser ist das erstellen eines
Comment
Objekt mit einemname
undrate
Eigenschaft.So dass Sie können es verwenden, wie folgt:
Siehe auch: