部署项目后发现以下“FreeMarker template error!”的问题,google、baidu猛一顿搜索无果后开始认真分析异常信息。

FreeMarker template error!

Error on line 72, column 6 in template/ajax/head.ftl
Expecting a boolean (true/false) expression here
Expression parameters.debug?default(false) does not evaluate to true/false
it is an instance of freemarker.ext.beans.StringModel
The problematic instruction:
----------
==> if parameters.debug?default(false) [on line 72, column 1 in template/ajax/head.ftl]
---------- Java backtrace for programmers:
----------
freemarker.core.NonBooleanException: Error on line 72, column 6 in template/ajax/head.ftl
Expecting a boolean (true/false) expression here
Expression parameters.debug?default(false) does not evaluate to true/false
it is an instance of freemarker.ext.beans.StringModel
at freemarker.core.Expression.isTrue(Expression.java:150)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:232)
at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:168)
at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:530)
at org.apache.struts2.components.UIBean.end(UIBean.java:484)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
at org.apache.jsp.WebUI.UserCenter.modifyUserInfo_jsp._jspx_meth_sd_005fhead_005f0(modifyUserInfo_jsp.java:389)
at org.apache.jsp.WebUI.UserCenter.modifyUserInfo_jsp._jspService(modifyUserInfo_jsp.java:99)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:416)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

一句异常都没有看懂,但是发现和项目有关的两条异常,如下:

      at org.apache.jsp.WebUI.UserCenter.modifyUserInfo_jsp._jspx_meth_sd_005fhead_005f0(modifyUserInfo_jsp.java:389)
at org.apache.jsp.WebUI.UserCenter.modifyUserInfo_jsp._jspService(modifyUserInfo_jsp.java:99)

打开tomcat部署的modifyUserInfo_jsp.java文件,定位到99行。

96       out.write("<!DOCTYPE html >\n");
 97       out.write("<html>\n");
 98       out.write("<head>\n");
 99       if (_jspx_meth_sd_005fhead_005f0(_jspx_page_context))
100         return;
101       out.write("\n");
102       out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n");
和源代码进行对比
 13 <!DOCTYPE html >
 14 <html>
 15 <head>
 16 <sd:head/>
 17 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
询问相关开发人员后,发现源代码16行为多余代码,删除后异常消除,没有再深入研究389行代码。

总结:遇到不认识、没见过的异常信息,不用害怕,认真分析,或许就是一个简单的语法错误。

FreeMarker template error!的更多相关文章

  1. cosbench 异常 FreeMarker template error: The following has evaluated to null or missing

    问题现象: 使用Cosbench 0.4.2.c4 版本测试Ceph RGW read test失败,遇到异常如下: FreeMarker template error: The following ...

  2. Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormessage.ftl"

    初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错.

  3. FreeMarker template error: The following has evaluated to null or missing: ==> blogger.md [in template "admin/about.ftl" at line 44, column 84]

    FreeMarker template error:The following has evaluated to null or missing:==> blogger.md [in templ ...

  4. FreeMarker template error: The following has evaluated to null or missing

    使用freemarker前端分页,报错: FreeMarker template error: The following has evaluated to null or missing 后端直接赋 ...

  5. 关于Struts2的客户端校验的FreeMarker template error!

    把<s:form action="login" namespace="/" validate="true" >改为 <s: ...

  6. springboot FreeMarker template error

    注释掉<#list>xxx</#list> 现在运行就不报错了

  7. freemarker.template.TemplateException:Error parsing including template

    1.错误描述 freemarker.template.TemplateException:Error parsing including template ftl/main.ftl:on line 6 ...

  8. freemarker.template.TemplateException:Error executing macro:mainSelect

    1.错误描述 freemarker.template.TemplateException:Error executing macro:mainSelect require parameter:id i ...

  9. 异常-----freemarker.template.TemplateException:Error executing macro:mainSelect

    1.错误描述 freemarker.template.TemplateException:Error executing macro:mainSelect require parameter:id i ...

随机推荐

  1. [转]开发Visual Studio风格的用户界面--MagicLibrary使用指南

    本文的示例代码为可以从这里下载: 1           概述 微软Visual Studio.NET开发工具推出已经好几年了,这个开发工具一推出就以其易用性和强大功能深受开发者的喜爱.尤其是.NET ...

  2. ES5基础01:正则表达式

    1.功能 匹配特定模式:比如匹配手机号码,匹配身份证号码等 替换文本:比如将input中的空格全部去掉 提取字符串:将特定的字符串提取出来 2.语法

  3. memcached缓存失效时的高并发访问问题解决

    memcached一般用于在访问一些性能相对低下的数据接口时(如数据库),为了保证这些数据接口的稳定性,加上memcached以减少访问次数,保证这些数据接口的健壮性.一般memcached的数据都是 ...

  4. 如何在高并发分布式系统中生成全局唯一Id(转)

    http://www.cnblogs.com/heyuquan/p/global-guid-identity-maxId.html 又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文, ...

  5. SQL语句的添加、删除、修改多种方法

    SQL语句的添加.删除.修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来? 添加.删除.修改使用db.Execute(Sql)命令执行操作╔------- ...

  6. [CareerCup] 8.8 Othello Game 黑白棋游戏

    8.8 Othello is played as follows: Each Othello piece is white on one side and black on the other. Wh ...

  7. 用 CNTK 搞深度学习 (一) 入门

    Computational Network Toolkit (CNTK) 是微软出品的开源深度学习工具包.本文介绍CNTK的基本内容,如何写CNTK的网络定义语言,以及跑通一个简单的例子. 根据微软开 ...

  8. Sea.js & Require.js

    Sea.js 追求简单.自然的代码书写和组织方式,具有以下核心特性: 简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码. 自然直观的代码组织方式:依赖 ...

  9. AE 打开各种格式文件

    http://blog.sina.com.cn/s/blog_7a3fc90501016qrg.html /// <summary>/// 打开ShapeFile文件/// </su ...

  10. GridView的常规用法

    GridView控件在Asp.net中相当常用,以下是控件的解释,有些是常用的,有些是偶尔用到的,查找.使用.记录,仅此而已.(最后附带DropDownList控件) ASP.NET中GridView ...