这可能是一个简单的问题,但我似乎无法想出答案。
我有这个简单的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>
我收到数据错误=&#34; $ {gt 6}&#34;。在Thymeleaf有办法做到这一点吗?
提前致谢。
答案 0 :(得分:1)
语法确实是错误的。 Details
正确的语法是"${someVar} gt 6"
,但当然,它将无法正常工作,尽管模板将呈现。这是因为${someVar}
评估为12(例如),而${someVar} gt 6
评估为true
。这些不相等。
如果启用ThyemeLeaf追踪,您将看到百里香叶如何解释这一点:
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。