thymeleaf eq与spring变量bug?

时间:2013-11-08 11:20:14

标签: spring thymeleaf

我正在尝试运行以下内容:if:

  

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

但是我收到了这个错误:

  

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

但是,如果我尝试

  

:if =“$ {camelContext.getRouteStatus(route.id)}> 41”

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

  

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

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

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

干杯

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你试过这个:

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

也许它会像这样工作?

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

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

尽管其中一些运算符存在文本别名:gt(>),lt(<),ge(> =),le(< =),而不是(!)。另外,eq(==),neq / ne(!=),坚持旧时尚运营商有时候会更好。