1、错误描述

  1. 五月 30, 2014 11:33:57 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error
  2. 严重: Template processing error: "Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl."
  3.  
  4. Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  5. The problematic instruction:
  6. ----------
  7. ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
  8. ----------
  9.  
  10. Java backtrace for programmers:
  11. ----------
  12. freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  13. at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
  14. at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
  15. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  16. at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
  17. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  18. at freemarker.core.Expression.getStringValue(Expression.java:93)
  19. at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
  20. at freemarker.core.Environment.visit(Environment.java:221)
  21. at freemarker.core.MixedContent.accept(MixedContent.java:92)
  22. at freemarker.core.Environment.visit(Environment.java:221)
  23. at freemarker.core.Environment.process(Environment.java:199)
  24. at freemarker.template.Template.process(Template.java:259)
  25. at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
  26. at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
  27. at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
  28. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  29. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  30. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  31. at java.lang.reflect.Method.invoke(Unknown Source)
  32. at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
  33. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
  34. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
  35. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
  36. at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
  37. at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
  38. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
  39. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
  40. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
  41. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
  42. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
  43. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
  44. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
  45. at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
  46. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  47. at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  48. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  49. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  50. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  51. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  52.  
  53. Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  54. The problematic instruction:
  55. ----------
  56. ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
  57. ----------
  58.  
  59. Java backtrace for programmers:
  60. ----------
  61. freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  62. at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
  63. at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
  64. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  65. at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
  66. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  67. at freemarker.core.Expression.getStringValue(Expression.java:93)
  68. at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
  69. at freemarker.core.Environment.visit(Environment.java:221)
  70. at freemarker.core.MixedContent.accept(MixedContent.java:92)
  71. at freemarker.core.Environment.visit(Environment.java:221)
  72. at freemarker.core.Environment.process(Environment.java:199)
  73. at freemarker.template.Template.process(Template.java:259)
  74. at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
  75. at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
  76. at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
  77. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  78. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  79. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  80. at java.lang.reflect.Method.invoke(Unknown Source)
  81. at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
  82. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
  83. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
  84. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
  85. at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
  86. at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
  87. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
  88. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
  89. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
  90. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
  91. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
  92. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
  93. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
  94. at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
  95. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  96. at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  97. <html>
  98. <head>
  99. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  100. <title>freemarker基本数据类型</title>
  101.  
  102. </head>
  103.  
  104. <body>
  105. 张三丰
  106.  
  107. 123,456
  108.  
  109. true
  110.  
  111. Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  112. The problematic instruction:
  113. ----------
  114. ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
  115. ----------
  116.  
  117. Java backtrace for programmers:
  118. ----------
  119. freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
  120. at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
  121. at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
  122. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  123. at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
  124. at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
  125. at freemarker.core.Expression.getStringValue(Expression.java:93)
  126. at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
  127. at freemarker.core.Environment.visit(Environment.java:221)
  128. at freemarker.core.MixedContent.accept(MixedContent.java:92)
  129. at freemarker.core.Environment.visit(Environment.java:221)
  130. at freemarker.core.Environment.process(Environment.java:199)
  131. at freemarker.template.Template.process(Template.java:259)
  132. at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
  133. at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
  134. at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
  135. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  136. at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  137. at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  138. at java.lang.reflect.Method.invoke(Unknown Source)
  139. at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
  140. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
  141. at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
  142. at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
  143. at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
  144. at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
  145. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
  146. at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
  147. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
  148. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
  149. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
  150. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
  151. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
  152. at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
  153. at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  154. at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  155. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  156. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  157. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  158. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  159. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  160. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  161. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  162. at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

2、错误原因

  1. <#--定义布尔值-->
  2. <#assign flag = true/>
  3. ${flag?string}
  4. ${flag.color?string}

因为flag已经定义为true,再次定义会报错

3、解决办法

修改变量名,将flag修改为num

  1. ${(num.color)???string}

结果:false

freemarker报错之七的更多相关文章

  1. freemarker报错之四

    1.错误描述 五月 28, 2014 9:56:48 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proce ...

  2. 关于SpringMVC整合freemarker报错问题

    错误信息: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'FreeMa ...

  3. freemarker报错之三

    1.错误描写叙述 Expression students is undefined on line 30, column 24 in student.ftl. The problematic inst ...

  4. freemarker报错之八

    1.错误描写叙述 freemarker.core.ParseException: Encountered "string" at line 21, column 21 in typ ...

  5. freemarker报错之二

    1.错误描述 五月 27, 2014 12:07:05 上午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  6. freemarker报错之一

    freemarker 1.错误描述 java.io.FileNotFoundException: Template user.ftl not found. at freemarker.template ...

  7. freemarker报错之六

    1.错误描述 五月 28, 2014 10:32:40 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  8. freemarker报错之五

    1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Lexical e ...

  9. freemarker报错之十五

    1.错误描述 六月 04, 2014 11:04:03 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

随机推荐

  1. MySQL死锁案例分析与解决方案

    MySQL死锁案例分析与解决方案 现象: 数据库查询: SQL语句分析:  mysql. 并发delete同一行记录,偶发死锁.   delete from x_table where id=?   ...

  2. Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

    上篇博客聊了<git分支管理之rebase 以及 cherry-pick相关操作>本篇博客我们就以Learning Git中的关卡进行展开.下方列举了LearningGit中的 merge ...

  3. mysql导出数据至指定文件的命令

    根据查询语句,导出数据至指定文件SELECT name INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY '-|-' OPTIONALLY ENC ...

  4. centos 编译安装net-snmp 5.6.2

    1.准备环境 yum -y install make gcc gcc-c++ gcc-g77 openssl openssl-devel 常用lib安装可参照本文 2.编译和安装 首先我们需要下载Ne ...

  5. 使用py2exe发布windows平台Python

    一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.py2ex ...

  6. 解决mysql、vsftp远程连接速度慢的问题

    以 centOS 6.3(其他操作系统类似,同样适用)说明: 当我们的服务都配置正常的情况下,有时会出现连接速度慢而导致连接失败的问题 问题分析:这些情况一般都是DNS解析惹的祸 mysql连接速度慢 ...

  7. jQuery源码逐行分析学习01(jQuery的框架结构简化)

    最近在学习jQuery源码,在此,特别做一个分享,把所涉及的内容都记录下来,其中有不妥之处还望大家指出,我会及时改正.望各位大神不吝赐教!同时,这也是我的第一篇前端技术博客,对博客编写还不是很熟悉,美 ...

  8. 什么是SSL

    什么是SSL 简单来说,在我们使用的浏览器中都默认信任着全世界多个最权威的CA机构(证书颁发机构),如下图: 上图中,受信任的根证书颁发机构列表里的都是我们浏览器中默认信任的CA机构,我们只需要向他们 ...

  9. HBase Filter及对应Shell--转

    http://www.cnblogs.com/skyl/p/4807793.html 比较运算符 CompareFilter.CompareOp比较运算符用于定义比较关系,可以有以下几类值供选择: E ...

  10. java对象序列化、反序列化

    平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...