freemarker报错之七
1、错误描述
- 五月 30, 2014 11:33:57 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error
- 严重: Template processing error: "Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl."
- Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- The problematic instruction:
- ----------
- ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
- ----------
- Java backtrace for programmers:
- ----------
- freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
- at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.Expression.getStringValue(Expression.java:93)
- at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.MixedContent.accept(MixedContent.java:92)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.Environment.process(Environment.java:199)
- at freemarker.template.Template.process(Template.java:259)
- at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
- at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
- at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
- at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
- at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
- Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- The problematic instruction:
- ----------
- ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
- ----------
- Java backtrace for programmers:
- ----------
- freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
- at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.Expression.getStringValue(Expression.java:93)
- at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.MixedContent.accept(MixedContent.java:92)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.Environment.process(Environment.java:199)
- at freemarker.template.Template.process(Template.java:259)
- at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
- at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
- at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
- at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
- at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <title>freemarker基本数据类型</title>
- </head>
- <body>
- 张三丰
- 123,456
- true
- Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- The problematic instruction:
- ----------
- ==> ${flag.color?string} [on line 21, column 6 in type.ftl]
- ----------
- Java backtrace for programmers:
- ----------
- freemarker.template.TemplateException: Expected hash. flag evaluated instead to freemarker.template.TemplateBooleanModel$2 on line 21, column 8 in type.ftl.
- at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:136)
- at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.BuiltIn$stringBI._getAsTemplateModel(BuiltIn.java:408)
- at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
- at freemarker.core.Expression.getStringValue(Expression.java:93)
- at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.MixedContent.accept(MixedContent.java:92)
- at freemarker.core.Environment.visit(Environment.java:221)
- at freemarker.core.Environment.process(Environment.java:199)
- at freemarker.template.Template.process(Template.java:259)
- at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)
- at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)
- at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
- at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
- at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
- at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
2、错误原因
- <#--定义布尔值-->
- <#assign flag = true/>
- ${flag?string}
- ${flag.color?string}
因为flag已经定义为true,再次定义会报错
3、解决办法
修改变量名,将flag修改为num
- ${(num.color)???string}
结果:false
freemarker报错之七的更多相关文章
- freemarker报错之四
1.错误描述 五月 28, 2014 9:56:48 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proce ...
- 关于SpringMVC整合freemarker报错问题
错误信息: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'FreeMa ...
- freemarker报错之三
1.错误描写叙述 Expression students is undefined on line 30, column 24 in student.ftl. The problematic inst ...
- freemarker报错之八
1.错误描写叙述 freemarker.core.ParseException: Encountered "string" at line 21, column 21 in typ ...
- freemarker报错之二
1.错误描述 五月 27, 2014 12:07:05 上午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- freemarker报错之一
freemarker 1.错误描述 java.io.FileNotFoundException: Template user.ftl not found. at freemarker.template ...
- freemarker报错之六
1.错误描述 五月 28, 2014 10:32:40 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- freemarker报错之五
1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Lexical e ...
- freemarker报错之十五
1.错误描述 六月 04, 2014 11:04:03 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
随机推荐
- MySQL死锁案例分析与解决方案
MySQL死锁案例分析与解决方案 现象: 数据库查询: SQL语句分析: mysql. 并发delete同一行记录,偶发死锁. delete from x_table where id=? ...
- Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase
上篇博客聊了<git分支管理之rebase 以及 cherry-pick相关操作>本篇博客我们就以Learning Git中的关卡进行展开.下方列举了LearningGit中的 merge ...
- mysql导出数据至指定文件的命令
根据查询语句,导出数据至指定文件SELECT name INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY '-|-' OPTIONALLY ENC ...
- centos 编译安装net-snmp 5.6.2
1.准备环境 yum -y install make gcc gcc-c++ gcc-g77 openssl openssl-devel 常用lib安装可参照本文 2.编译和安装 首先我们需要下载Ne ...
- 使用py2exe发布windows平台Python
一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.py2ex ...
- 解决mysql、vsftp远程连接速度慢的问题
以 centOS 6.3(其他操作系统类似,同样适用)说明: 当我们的服务都配置正常的情况下,有时会出现连接速度慢而导致连接失败的问题 问题分析:这些情况一般都是DNS解析惹的祸 mysql连接速度慢 ...
- jQuery源码逐行分析学习01(jQuery的框架结构简化)
最近在学习jQuery源码,在此,特别做一个分享,把所涉及的内容都记录下来,其中有不妥之处还望大家指出,我会及时改正.望各位大神不吝赐教!同时,这也是我的第一篇前端技术博客,对博客编写还不是很熟悉,美 ...
- 什么是SSL
什么是SSL 简单来说,在我们使用的浏览器中都默认信任着全世界多个最权威的CA机构(证书颁发机构),如下图: 上图中,受信任的根证书颁发机构列表里的都是我们浏览器中默认信任的CA机构,我们只需要向他们 ...
- HBase Filter及对应Shell--转
http://www.cnblogs.com/skyl/p/4807793.html 比较运算符 CompareFilter.CompareOp比较运算符用于定义比较关系,可以有以下几类值供选择: E ...
- java对象序列化、反序列化
平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...