我正在使用此JSTL代码生成HTML表格。每隔一行都有一个不同的类,所以我们可以给表条纹。我知道我们可以使用CSS3轻松完成这项工作,但我必须支持旧浏览器。
无论如何这是我使用的代码 - 看起来很重 - 是否有更简单的方法呢?
<c:set var="oddEven" value="true" />
<c:forEach var="row" items="${rows}">
<c:choose>
<c:when test="${oddEven}">
<tr>
</c:when>
<c:otherwise>
<tr class="odd">
</c:otherwise>
</c:choose>
<td>${row.value1}</td>
<td>${row.value2}</td>
</tr>
<c:set var="oddEven" value="${!oddEven}" />
</c:forEach>
答案 0 :(得分:3)
这应该可以解决问题:
<c:forEach var="row" items="${rows}" varStatus="status">
<tr
<c:if test="${status.count % 2 ne 0}">
class="odd"
</c:if>
>
<td>...</td>
</tr>
</c:forEach>
我在这个例子中使用status.count
; count
计算循环执行的次数,从1开始。如果您希望计数从0开始,请使用status.index
。
答案 1 :(得分:1)
尝试
<tr class="${(status.index % 2) == 0 ? 'oddRow' : 'evenRow'}">
答案 2 :(得分:0)
我不是JSP大师,但你可以写一个自定义jsp标签来做这个吗?