【问题标题】:JSTL - Loop through table rows and set background color at each oneven rowsJSTL - 遍历表格行并在每行设置背景颜色
【发布时间】:2013-03-11 12:48:25
【问题描述】:

目的(根据 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>

【问题讨论】:

  • 确认“even”实际上是为CSS中的tr元素定义的类。
  • “forEach”的“varStatus”是否分配给“status”?
  • &lt;tr&gt; 中的 css class 属性是否正确设置?此外,您的 css 似乎适用于 &lt;li&gt; 元素,而不是表格的 &lt;tr&gt; 元素。

标签: java jsp servlets jstl


【解决方案1】:

status 在这里是一个未定义的属性。您需要使用forEach 标签的varStatus 属性来定义它:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 2011-09-08
    • 2018-08-01
    • 2015-04-21
    • 2014-02-05
    • 2013-07-19
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多