2016-04-20 9 views
0

Ich möchte eine Tabelle, die die ersten 10 Elemente in einem td, die nächsten 20 in einem zweiten td drucken wird. Aber der Code unten tut das nicht. Stattdessen nimmt es die Elemente [0] und 10 [10] usw. und fügt sie in eine Tabelle ein, aber die anderen Elemente werden außerhalb der Tabelle platziert.Jsp: Mit c: wenn nicht funktioniert

<table><tr>  
<c:forEach var="item" items="${itemList}" varStatus="i"> 
<c:if test="${i.index % 10 == 0}"> 
    <td> 
</c:if> 
<a>${item}</a><br> 
<c:if test="${i.index % 10 == 0}"> 
    </td> 
</c:if> 
</c:forEach> 
</tr></table> 

Antwort

1

der ersten und zweiter Test sind beide wahr, der schließende </td> wird zur gleichen Zeit wie die Öffnung <td> platziert.

Der zweite c:if 9 sollte anstelle von 0.

<c:if test="${i.index % 10 == 9}"> 
    </td> 
</c:if> 
+0

Danke, das hat funktioniert :) – stumped

0

Sie haben Gerade jetzt i.index < 10. verwenden Sie das Modul verwenden (%), das, was es tut, ist durch 10 dividiert und Rückführen der Rest

0

<table> <tr>
<c:forEach var="item" items="${itemList}" varStatus="i"> <c:if test="${i.index < 10}"> <td> <a>${item}</a><br> </td> </c:if> <td> <a>${item}</a><br> </td> </c:forEach> </tr> </table>

+0

ich diesen Code verwenden versucht, aber es hat nicht funktioniert. Es hat nur alle Elemente in einer geraden Linie gedruckt. Was ich will, ist eine Tabelle mit Spalten von jeweils 10 Zeilen. Die forEach-Schleife geht jede Spalte und dann zur nächsten Spalte hinunter. – stumped

Verwandte Themen