2017-01-13 77 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> 

我得到數據-TH-殼體= 「$ {GT 6}」 錯誤。在Thymeleaf有沒有辦法做到這一點?

在此先感謝。

回答

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