2017-01-13 8 views
0

Dies ist wahrscheinlich eine einfache Frage, aber ich kann nicht scheinen, an eine Antwort darauf zu denken.Thymeleaf-Schalter auf Integer, Fall größer als

Ich habe diese einfache Thymeleaf Code:

<ul data-th-switch="${someVar}"> 
    <li data-th-case="${gt 6}">someVar is greater than 6.</li> 
    <li data-th-case="*">Default case.</li> 
</ul> 

ich einen Fehler auf Daten-ten-Fall erhalten = "$ {gt 6}". Gibt es eine Möglichkeit, dies in Thymeleaf zu tun?

Vielen Dank im Voraus.

Antwort

1

Die Syntax ist in der Tat falsch. Details.

Eine korrekte Syntax ist eine "${someVar} gt 6" aber natürlich wird es nicht korrekt funktionieren, obwohl die Vorlage rendern wird. Dies liegt daran, dass ${someVar} 12 (zum Beispiel) und ${someVar} gt 6 zu true auswertet. Diese sind nicht gleich.

Wenn Sie aktivieren die ThyemeLeaf verfolgen, werden Sie sehen, wie thymeleaf dies interpretieren:

o.t.s.expression.GreaterThanExpression : Evaluating GREATER THAN expression: "${someVar} > 6". Left is "12", right is "6". Result is "true" 
o.t.s.expression.EqualsExpression  : Evaluating EQUALS expression: "${someVar} == (${someVar} > 6)". Left is "12", right is "true". Result is "false" 

auf der Logik Je, die Sie implementieren möchten können Sie zu sehr unterschiedlichen Lösungen kommen - zum Beispiel von der Erstellung eines Gadgets in Ihrem Modell bis zur Implementierung der if-else-Logik. Überprüfen Sie diese Frage für weitere ideas.

+0

Danke für den Eingang, @Lachezar Balev. Ich habe tatsächlich einige if-else-Blöcke implementiert, um das Problem zu lösen. Ich migrierte tatsächlich eine JSP-Datei zu Thymeleaf und ich blieb auf einem -Tag stecken. Surprised Thymeleaf hat keine ähnliche Funktionalität. Auf jeden Fall hast du absolut recht - ich bezeichne dies als die Antwort. – ExplodingTiger