2016-04-20 3 views
0

Мне нужна таблица, в которой будут напечатаны первые 10 предметов за один тд, а следующие 20 секунд во втором td. Но приведенный ниже код не делает этого. Вместо этого он принимает элемент [0] и элемент [10] и т. Д. И помещает их в таблицу, но другие элементы размещаются за пределами таблицы.Jsp: Использование c: if not working

<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> 

ответ

1

Первый и второе испытание верно, закрытие </td> размещается одновременно с открытием <td>.

Второй c:if следует использовать 9 вместо 0.

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

Спасибо, что сработало :) – stumped

0

Вы должны использовать i.index < 10. Прямо сейчас вы используете модуль (%), который делает то, что он делит на 10 и возвращая остаток

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

Я попробовал этот код, но он не работает. Он просто напечатал все предметы по прямой. Мне нужна таблица со столбцами по 10 строк каждая. Цикл forEach помещается в каждый столбец, а затем в следующий столбец. – stumped