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

标签 java css jsp jsp-tags scriptlet

在我的 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 变量。

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

编辑1:我希望在循环内迭代CSS类值,以便每一行根据其保存的值获得自己的行颜色

最佳答案

首先,您必须使用您收到的百分比值创建一个变量,然后使用该变量获取三元运算符中的值。下面是示例。

<c:set var="entryPercentage" value="${entry.percentage}"/>
<div class="${entryPercentage == 0 ? 'green' : entryPercentage < var_yellow ? 'red' : entryPercentage < var_green ? 'yellow' : 'green' }">

关于java - 如何在JSP三元运算中使用scriptlet值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42106227/

相关文章:

java |如何使用 JAXB 解析此 ('3-level' ) xml?

java - (重新)使用 DateTimeFormatter 解析日期范围或将 DateTimeFormatter 与正则表达式混合

java - 'sourceSets'无法应用于IntelliJ 2016中的groovy.lang.Closure <org.gradle.api.tasks.SourceSet>警告

java - AJAX(原型(prototype)/java)在执行期间获取部分状态更新

java - JSP - 下拉列表中的日期对象

mysql - 尝试将西里尔字母插入 mysql 表

java - Joda-Time——从另一个句点中删除一个句点

javascript - 我可以拥有一个 ID 以数字开头的元素吗?

javascript - css 渲染位置和中断

css - 相对于图像的绝对位置