freemarker 一个很小的错误

虽然错误很小,但是不注意真的不知道是哪里的错误

 evaluated instead to 这个是关键词

使用的struts2 + freemarker 渲染,今天日志报错了

[ERROR] [481976@qtp-20535365-0] (freemarker.runtime:96) - Expected hash. exchange evaluated instead to freemarker.core.Macro on line 10, column 127 in WEB-INF/ftl/huawei/tpl/single_comment.ftl.

Expected hash. exchange evaluated instead to freemarker.core.Macro on line 10, column 127 in WEB-INF/ftl/huawei/tpl/single_comment.ftl.
The problematic instruction:
----------
==> ${exchange.id} [on line 10, column 125 in WEB-INF/ftl/huawei/tpl/single_comment.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateException: Expected hash. exchange evaluated instead to freemarker.core.Macro on line 10, column 127 in WEB-INF/ftl/huawei/tpl/single_comment.ftl.
    at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135)

.....

当时还以为是对象没验证之类的,加上了各种判断${(exchange.id)!0} 还有if的判断,反正是都不行啊,最后说查查这个错误吧,上网找也没有,这里不得不说咱的英语真心不好,要是个过6级的人可能马上就知道了

后来查了下翻译才知道那段提示说的是exchange 是freemarker的关键字,不能使用,换了一个别的词立马没问题了

其实处理服务器日志错误问题,先上网查也是正确的选择,但是能先翻译下错误提示内容咱就翻译下呗,没准能蒙出来呢

其实如果对象为空报的错误应该是undefined

原文地址:https://www.cnblogs.com/t2xingzhe/p/2756678.html