Java 如何在JSP三元操作中使用scriptlet值?

Java 如何在JSP三元操作中使用scriptlet值?,java,css,jsp,jsp-tags,scriptlet,Java,Css,Jsp,Jsp Tags,Scriptlet,在我的JSP页面中,我得到了从数据库获得的两个值。在scriptlet标记中,我正在初始化要使用的java变量,如下所示: <body> <% Map<String, Double> colorMap = new HashMap<>(); colorMap = InsightDbConn.getInstance().getFpyRtyColorLimits(); double var_yellow

在我的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>

${entry.category}
${entry.percentage}
${entry.daily_date}
${entry.total_tests}
${entry.total_passed}
正如在上面的代码中所看到的,我正试图在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' }">

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

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


在第一种情况下,使用Scriptlet…我尝试使用Scriptlet的值,但它将所有行绘制为绿色,或者更准确地说,使用CSS定义的“绿色”类。它没有使用变量
${entry.percentage}
不是一个scriptlet,而是一个表达式语言符号;)Scriptlet将是
的可能副本,或者,如果我对问题的秒读更准确(不符合需要),在第一种情况下,使用Scriptlet…我尝试使用Scriptlet的值,但它将所有行绘制为绿色,或者确切地说,使用CSS定义的“绿色”类。它没有使用变量
${entry.percentage}
不是一个scriptlet,而是一个表达式语言符号;)Scriptlet将是
的可能副本,或者,如果我对问题的秒读更准确(不符合需要),