0

我正在尝试运行以下 th:if:

th:if="${camelContext.getRouteStatus(route.id)} &eq; '嘿'

但我收到此错误:

org.thymeleaf.exceptions.TemplateProcessingException:无法解析为表达式:“${camelContext.getRouteStatus(route.id)} &neq; 'Hey'” (camel:92)

但是,如果我尝试

th:if="${camelContext.getRouteStatus(route.id)} > 41 "

我得到一个不同的错误,但现在表明它能够解析表达式,只是它不能比较字符串和数字:

无法从表达式“${camelContext.getRouteStatus(route.id)} > 41”执行 GREATER THAN。左边是“开始”,右边是“41”(骆驼:92)

没关系,我只是想检查我是否正确编写了语法,而且我不想比较数字,我想比较 RouteStatus 字符串。

无论如何,也许有人可以帮助我解决这个问题?基本上我想对字符串的内容做一个if-else,但我不能让它工作..

干杯

4

2 回答 2

0

看来您的表达格式不正确,但这可能是复制粘贴问题。

你可以试试:th:if="${camelContext.getRouteStatus( route.id ) eq 'Hey'}

于 2013-11-08T11:58:25.713 回答
0

你有没有试过这个:

th:if="${camelContext.getRouteStatus( route.id )} == 'Hey'"

也许它会像这样工作?

thymeleaf 上的示例显示了类似的内容:表达式中的值可以像往常一样与 >、<、>= 和 <= 符号进行比较,并且 == 和 != 运算符也可用于检查相等(或缺少其中)。请注意,XML 规定不应在属性值中使用 < 和 > 符号,因此应将它们替换为 < 和 >。

    th:if="${prodStat.count} gt; 1"
th:text="'Execution mode is ' + ( (${execMode} == 'dev')? 'Development' : 'Production')"

尽管其中一些运算符存在文本别名:gt (>)、lt (<)、ge (>=)、le (<=),not (!)。还有 eq (==)、neq/ne (!=),有时还是坚持使用老式的运算符会更好。

于 2013-12-10T11:39:15.360 回答