На моей странице 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>
Как видно из приведенного выше кода, я пытаюсь установить значение класса CSS с помощью переменных Java, которые я определил в скриптлете. Если я использую числовые значения, работа будет выполнена. Значения являются динамическими и могут меняться со временем, поэтому вместо этого я намерен использовать переменные скриптлета.
Может кто-нибудь любезно сказать, где я ошибся.
EDIT 1: я хочу повторить значение класса CSS внутри цикла, чтобы каждая строка получала свой цвет строки в зависимости от значения, которое она содержит.
${entry.percentage}
- это не скриптлет, а нотация языка выражений ;) Скриптлет будет<% String s = value == 0 ? "foo" : "bar" %>
- person AxelH   schedule 08.02.2017