如何在JSP三元运算中使用scriptlet值?

问题描述 投票:1回答:1

在我的JSP页面中,我得到从数据库获得的双精度值。在scriptlet标记内,我正在初始化要使用的java变量,如下所示:

<body>
    <%
        Map<String, Double> colorMap = new HashMap<>();
        colorMap = InsightDbConn.getInstance().getFpyRtyColorLimits();
        double var_yellow = colorMap.get("fpy_yellow"); // storing 85
        double var_green = colorMap.get("fpy_green"); // storing 93
    %>

我需要使用这些值,以便根据我获得的值设置表的行颜色。我正在使用CSS类来设置行颜色。但是要定义该类的值,我正在使用JSP的三元运算符来遍历从数据库获得的值。

下面是我的代码:

 <c:forEach items="${fpyrtyDailyList}" var="entry">
     <tr>
        <td>${entry.category}</td>
        <td>
          <div class="${entry.percentage == 0 ? 'green' : entry.percentage < var_yellow ? 'red' : entry.percentage < var_green ? 'yellow' : 'green' }">
             ${entry.percentage}
          </div>
        </td>
        <td>${entry.daily_date}</td>
        <td>${entry.total_tests}</td>
        <td>${entry.total_passed}</td>
     </tr>
 </c:forEach>

如上面的代码所示,我试图借助我在scriptlet中定义的Java变量来设置CSS类的值。如果我使用数值,那么工作就完成了。这些值是动态的,并且可能随时间变化,因此我打算改用scriptlet变量。

有人可以告诉我我哪里出了问题。

EDIT 1:我希望在循环内迭代CSS类的值,以便每一行都基于其持有的值获得自己的行颜色

java css jsp jsp-tags scriptlet
1个回答
0
投票

首先,您必须创建一个变量,该变量具有在percentage中接收的值,然后使用该变量在三元运算符中获取该值。下面是示例。

<c:set var="entryPercentage" value="${entry.percentage}"/>
<div class="${entryPercentage == 0 ? 'green' : entryPercentage < var_yellow ? 'red' : entryPercentage < var_green ? 'yellow' : 'green' }">
© www.soinside.com 2019 - 2024. All rights reserved.