2017-01-13 8 views
0

Это, вероятно, простой вопрос, но я не могу представить себе ответа на него.Переключатель Thymeleaf на целое число, регистр больше

У меня есть этот простой Thymeleaf код:

<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> 

я получаю ошибку на данных-го случая = "$ {Gt 6}". Есть ли способ сделать это в Тимелеафе?

Заранее спасибо.

ответ

1

Синтаксис в действительности неправильный. Details.

Правильный синтаксис - "${someVar} gt 6", но, конечно, он будет работать неправильно, хотя шаблон будет отображен. Это связано с тем, что ${someVar} оценивает до 12 (например), а ${someVar} gt 6 - true. Они не равны.

Если включить ThyemeLeaf трассировки вы увидите, как thymeleaf будет интерпретировать это:

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" 

В зависимости от логики, вы хотите реализовать, вы можете прийти к очень разные решения - например, от установки гаджета в вашей модели до реализации логики if-else. Проверьте этот вопрос еще на ideas.

+0

Спасибо за вход, @Lachezar Balev. Я действительно в конечном итоге реализовал некоторые блоки if-else, чтобы решить эту проблему. Я фактически переносил JSP-файл на Thymeleaf, и я застрял на теге . Удивленный Thymeleaf не имеет аналогичной функциональности. В любом случае, вы абсолютно правы - я отмечаю это как ответ. – ExplodingTiger