雖然錯誤很小,但是不注意真的不知道是哪里的錯誤
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