2013-04-15 5 views
35

Ich habe einen Text mit in drei verschiedenen Farben möglich zu machen thymeleaf verwenden.Wie mehrere Zustand in einem th hat: if-Tag thymeleaf

So ist der Code, den ich bisher gemacht habe, den Wert zu testen:

th:if="${evaluation} > 50" 
th:if="${evaluation} < 30" 

Und das funktioniert gut.

Aber der dritte Test ist für Werte zwischen diesen beiden. Also habe ich versucht:

th:if="(${evaluation} < 49) ∧ (${evaluation} > 29)" 

aber es funktioniert nicht, ich diesen Fehler habe beim Parsen:

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

Natürlich sind diese Linien zwischen Tags sind, da die ersten beiden richtig funktionieren.

Vielleicht ist der und Operand nicht korrekt, aber die Dokumentation von Thymeleaf ist nicht wirklich explizit auf diese Operanden.

Alle Ideen sind willkommen!

Update: Ich habe die Antwort vom thymeleaf Forum. Die Art und Weise es zu tun ist:

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

Problem gelöst!

Antwort

44

Ich bekam die Antwort vom thymeleaf Forum. Die Art und Weise, es zu tun ist:

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

Problem gelöst!

16

Dies ist, was für mich gearbeitet:

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

Mit einem Date-Objekt habe ich die folgende Funktion gefunden ** th: if = "$ {date.month ge 4 und date.month le 4}" ** – Benjamin

+3

Gleiche Antwort wie die akzeptierte, aber sauberere Syntax. Wenn dies der Arbeit zugestimmt wird, sollte dies die akzeptierte Antwort sein. –

8

Meiner Meinung nach, eine bessere und wartbare Lösung der Auswertung Code in der richtigen Klasse zu schreiben sein könnte.

class Evaluator{ 

private int value; 
.... 

public boolean isBounded() { 
    return value < 49 && value > 29; 
} 

dann in thymeleaf, rufen Sie die Funktion:

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

Einige Vorteile:

  1. Reiniger Vorlage.
  2. Kontrolle in Java-Code.
  3. Isolierung. Komplexere Auswertungen könnten geschrieben werden, ohne die Vorlage zu ändern.

Ich hoffe, das hilft.

+3

Dies beantwortet die Frage nicht. –