JSTL - 遍历表行并在每行中设置背景颜色

时间:2013-03-11 12:48:25

标签: java jsp servlets jstl

目的(根据forEach循环)是在表格内每3行设置一个背景颜色。 我下面的代码不起作用。 表格内部的所有数据都正确返回,但没有设置颜色。

<c:forEach var="coffee" items="${collection}">

<tr  class="${status.count % 3 == 0 ? 'even' : 'oneven'}"
${status.count % 3 == 0 ? 'even' : 'oneven'}  >
<td> ${coffee.brand} </td>
<td> ${coffee.type} </td>
<td> ${coffee.country} </td>

</tr>

</c:forEach>

我的CSS课程

tr.even { background: red; }
tr.odd { background: green; }

感谢您的帮助。

我找到了答案:

<h2>tabel with changing colors</h2>

    <table border=1>

        <tr>
            <th>Brand</th>
            <th>type</th>
            <th>Country</th>
        </tr>

        <c:forEach var="coffees" items="${collection}" varStatus="status">



            <tr class="${status.count % 3 == 0 ? 'even' : 'odd'}"
                ${status.count % 3 == 0 ? 'even' : 'odd'}>
                <td>${coffees.brand}</td>
                <td>${coffees.type}</td>
                <td>${coffees.country}</td>

            </tr>

            </c:forEach>



    </table>

1 个答案:

答案 0 :(得分:2)

status是未定义的属性。您需要使用varStatus标记的forEach属性来定义它:

<c:forEach var="coffee" items="${collection}" varStatus="status">

此外,color用于设置前景(文本)颜色。不要设置背景颜色。并且您将该类应用于li,因此它不适用于表行和单元格。 CSS应该是:

tr.even td {
    background-color: #006699;
}

tr.oneven td {
    background-color: #009999; 
}