java html spring jstl thymeleaf

java - Cómo tener una condición múltiple en una etiqueta th: if using thymeleaf



thymeleaf if ? (4)

En mi opinión, una solución mejor y más fácil de mantener podría ser escribir el código de evaluación en una clase adecuada.

class Evaluator{ private int value; .... public boolean isBounded() { return value < 49 && value > 29; }

luego en hoja de tomillo, llama a la función:

<p th:if="${evaluator.isBounded()} ...

Algunos beneficios:

  1. Plantilla más limpia.
  2. Control en código java.
  3. Aislamiento. Se pueden escribir evaluaciones más complejas sin cambiar la plantilla.

Espero que esto ayude.

Tengo un texto para representar en tres colores posibles diferentes usando thymeleaf .

Entonces el código que he hecho hasta ahora para probar el valor es:

th:if="${evaluation} &gt; 50" th:if="${evaluation} &lt; 30"

Y eso funciona bien.

Pero la tercera prueba es para valores entre esos dos. Así que lo intenté:

th:if="(${evaluation} &lt; 49) &and; (${evaluation} &gt; 29)"

pero no funciona, tengo este error al analizar:

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "(${evaluation} < 49) &and; (${evaluation} > 29)" (/property.html:41)

Por supuesto, estas líneas están entre etiquetas ya que las dos primeras funcionan correctamente.

Tal vez el y operando no es correcto, pero la documentación de thymeleaf no es realmente explícita en esos operandos.

¡Todas las ideas son bienvenidas!

Actualización: recibí la respuesta del foro thymeleaf. La forma de hacerlo es:

th:if="${evaluation &lt; 49 and evaluation &gt; 29}"

¡Problema resuelto!


Esto es lo que funcionó para mí:

th:if="${evaluation lt 49 and evaluation gt 29}"


Hice esto para tener múltiples condiciones en th:if en thymeleaf

<div th:if="${object.getStatus()} == ''active'' and ${object.getActiveDate()}" th:text="${#dates.format(object.getActiveDate(), ''yyyy-MM-dd'')}" </div>

Agregué el operador y entre las condiciones. También puede agregar o si es necesario.


Recibí la respuesta del foro thymeleaf. La forma de hacerlo es:

th:if="${evaluation &lt; 49 and evaluation &gt; 29}"

Problema resuelto !