Как иметь несколько условий в th:если тег с помощью thymeleaf
у меня есть текст для рендеринга в трех разных возможных цветах с помощью thymeleaf.
таким образом, код, который я сделал до сих пор, чтобы проверить значение:
th:if="${evaluation} > 50"
th:if="${evaluation} < 30"
и это хорошо работает.
но третий тест для значений между этими двумя. Поэтому я попробовал:
th:if="(${evaluation} < 49) ∧ (${evaluation} > 29)"
но это не работает, у меня есть эта ошибка при разборе:
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "(${evaluation} < 49) ∧ (${evaluation} > 29)" (/property.html:41)
конечно, эти строки находятся между тегами, так как первые два работают правильно.
возможно, и операнд неверен, но документация thymeleaf на самом деле не является явной для этих операндов.
все идеи приветствуются!
обновление: я получил ответ от форума thymeleaf. Способ сделать это:
th:if="${evaluation < 49 and evaluation > 29}"
проблема решена!
4 ответов
Я получил ответ от форума thymeleaf. Способ сделать это :
th:if="${evaluation < 49 and evaluation > 29}"
проблема решена !
на мой взгляд, лучшим и более ремонтопригодным решением может быть написание кода оценки в надлежащем классе.
class Evaluator{
private int value;
....
public boolean isBounded() {
return value < 49 && value > 29;
}
затем в thymeleaf вызовите функцию:
<p th:if="${evaluator.isBounded()} ...
преимущества:
- чистого шаблона.
- управление в коде java.
- изоляции. Более сложные оценки могут быть написаны без изменения шаблона.
надеюсь, это поможет.
Я сделал это, чтобы иметь несколько условий в th:if
в thymeleaf
<div
th:if="${object.getStatus()} == 'active' and ${object.getActiveDate()}"
th:text="${#dates.format(object.getActiveDate(), 'yyyy-MM-dd')}"
</div>
добавил и оператор условия. Вы также можете добавить или при необходимости.