一尘不染

JSTL-根据条件设置背景色

jsp

我是Java,JSTL,CSS,JSP的新手…与Java有关的任何东西和Web应用程序世界。并且我正在同时学习和制作自己的Web程序(使用Spring
MVC)。

现在,我将在.jsp文件中使用JSTL根据条件设置2种不同的背景颜色。我的条件是中位数。所以带有jstl的jsp文件中的逻辑应该是这样的:

if (value < median)  
// set background: green
else
// set background: red

我已经完成了Controller中中值的所有计算。因此,我的控制器提供了数据的中值以及整数类型和字符串类型

(我注意到无法在浏览器页面上显示整数类型的数据,对吗?[Q1]

因此,Integer类型用于带中间值的条件操作,字符串类型用于在浏览器上显示)

model.addAttribute("dataNo", dataNo);
model.addAttribute("dataStr", dataStr);
model.addAttribute("dataInt", dataInt);
model.addAttribute("median", median);

我的 像这样的jsp

(我的桌子越来越多)

<table class="table table-bordered">
    <tbody>
        <tr>
            <c:forEach var="dataNoValue" items="${dataNo}">
                <th>${dataNoValue}</th>
            </c:forEach>

        </tr>
        <tr>
            <c:forEach var="dataStrValue" items="${dataStr}">
                <th class="${dataInt < median ? 'background-color: green':'background-color: red'}">${dataStrValue}</th> -- [Q2] 
            </c:forEach>
        </tr>
    </tbody>
</table>

是的,[Q2]是错误的,有什么建议吗?感谢!


阅读 512

收藏
2020-06-10

共1个答案

一尘不染

您应该用样式属性替换类属性,如下所示:

<th style="${dataInt < median ? 'background-color: green':'background-color: red'}">${dataStrValue}</th>

或创建绿色和红色两个类,并像这样使用它们:

<style>
 .green{background-color: green}
 .red{background-color: red}
</style>

<th class="${dataInt < median ? 'green':'red'}">${dataStrValue}</th>
2020-06-10