我正在使用此 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>
最佳答案
这应该可以解决问题:
<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
。
关于optimization - 使用JSTL建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395152/