1、错误描述

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

2、错误原因

maps不是一个序列,不能用list遍历map

  1. <#--freemarker HashMap取值-->
  2. <#assign maps={"1":"张三丰","2":"李思思","3":"张三强","4":"王五"}>
  3. ${maps["3"]}
  4.  
  5. <#list maps as map>
  6. ${map}
  7. </#list>

3、解决办法

先获取map中的key值,再通过key值序列遍历map

  1. <#--freemarker HashMap取值-->
  2. <#assign maps={"1":"张三丰","2":"李思思","3":"张三强","4":"王五"}>
  3. ${maps["3"]}
  4.  
  5. <#assign keys=maps?keys>
  6. <#list keys as key>
  7. ${key}----${maps[key]}
  8. </#list>

freemarker报错之十四的更多相关文章

  1. freemarker报错之十五

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

  2. freemarker报错之十二

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

  3. freemarker报错之十

    1.错误描述 <html> <head> <meta http-equiv="content-type" content="text/htm ...

  4. freemarker报错之四

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

  5. freemarker报错之七

    1.错误描述 五月 30, 2014 11:33:57 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

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

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

  7. freemarker写select组件报错总结(四)

    1.错误描述 <html> <head> <meta http-equiv="content-type" content="text/htm ...

  8. freemarker报错之三

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

  9. freemarker报错之八

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

随机推荐

  1. Linux 下编译安装xDebug命令速记

    下载xdebug-2.2.4.tgz软件链接: http://pan.baidu.com/s/1jGHYRMA #解压 xdebugtar -zxvf xdebug-2.2.4.tgz #进入xdeb ...

  2. vue项目实战总结

    马上过年了,最近工作不太忙,再加上本人最近比较懒,毫无斗志,不愿学习新东西,或许是要过年的缘故(感觉像是在找接口). 就把前一段时间做过的vue项目,进行一次完整的总结. 这次算是详细总结,会从项目的 ...

  3. 济南清北学堂游记 Day 4.

    不知不觉,行程已经过半了啊. 基本上已经熟悉了这里的环境,这其实也意味着我应该很快就要走了. 明天和后天还有最后四场模拟赛,虽然以我的实力拿不到奖,但我也会尽力做好我自己. 我大概反思了一下这几天,其 ...

  4. controller 单元测试

    一般而言,我们写好一个模块后,会对其进行单元测试,再集成到现有的系统中. 但是呢~针对Controller.Service.Dao三层来说,我们最常的是对Service和Dao进行单元测试.然而Con ...

  5. Windows Azure Storage (25) Azure Append Blob

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章中,我们介绍了Azure Blob 有两种:Block Blob和Page Blob. 在这里笔者介绍Blo ...

  6. JDBC【数据库连接池、DbUtils框架、分页】

    1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的... 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开.关闭连接造成系统性能低下 编写连接 ...

  7. 使用ssh 登录Linux 文件上传下载方法

    最简单的方法: 安装WinSCP或者Filezilla, 启动该程序,然后自己输入输入主机名.端口.用户名.密码登录,然后在putty里面用pwd命令看看当前目录,再在WinSCP/Filezilla ...

  8. php与web页面交互(二)

    一.获取表单数据 1.1 使用POST()方法提交表单  ---POST()方法可以没有限制地传递数据到服务器,所提交的数据在后台传输,用户在浏览器端是看不到这一过程的,安全性高,适用于发送保密数据和 ...

  9. eclipse CDT unresolved inclusion

    原因:c\c++库未设置所导致的 解决办法:1.先配置环境变量:打开window->preference->c\c++bulid->environment->add-> ...

  10. 【vim】插件管理及代码智能提示与补全环境的配置

    1. 引言 可以使用脚本/插件来给vim添加各种神奇的功能,从更换颜色主题.到代码智能提示,甚至项目管理.无数开发者通过开源社区贡献自己开发的插件,使得vim有可能变得无比强大.这儿http://vi ...