zoukankan      html  css  js  c++  java
  • freemarker报错之三

    1、错误描述

    Expression students is undefined on line 30, column 24 in student.ftl.
    The problematic instruction:
    ----------
    ==> list students as student [on line 30, column 17 in student.ftl]
    ----------
    
    Java backtrace for programmers:
    ----------
    freemarker.core.InvalidReferenceException: Expression students is undefined on line 30, column 24 in student.ftl.
    	at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
    	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:100)
    	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.student(FreemarkerTest.java:127)
    	at com.you.test.freemarker.FreemarkerTest.testStudent(FreemarkerTest.java:113)
    	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)
    五月 27, 2014 10:45:07 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error
    严重: Template processing error: "Expression students is undefined on line 30, column 24 in student.ftl."
    
    Expression students is undefined on line 30, column 24 in student.ftl.
    The problematic instruction:
    ----------
    ==> list students as student [on line 30, column 17 in student.ftl]
    ----------
    
    Java backtrace for programmers:
    ----------
    freemarker.core.InvalidReferenceException: Expression students is undefined on line 30, column 24 in student.ftl.
    	at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
    	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:100)
    	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.printFile(FreemarkerTemplate.java:109)
    	at com.you.test.freemarker.FreemarkerTest.studentFile(FreemarkerTest.java:141)
    	at com.you.test.freemarker.FreemarkerTest.testStudent(FreemarkerTest.java:114)
    	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)
    
    
    Expression students is undefined on line 30, column 24 in student.ftl.
    The problematic instruction:
    ----------
    ==> list students as student [on line 30, column 17 in student.ftl]
    ----------
    
    Java backtrace for programmers:
    ----------
    freemarker.core.InvalidReferenceException: Expression students is undefined on line 30, column 24 in student.ftl.
    	at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
    	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:100)
    	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.printFile(FreemarkerTemplate.java:109)
    	at com.you.test.freemarker.FreemarkerTest.studentFile(FreemarkerTest.java:141)
    	at com.you.test.freemarker.FreemarkerTest.testStudent(FreemarkerTest.java:114)
    	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)

    2、错误原因

    /**
    	 * 测试freemarker中的list
    	 * @Title:testList
    	 * @Description:
    	 * @param:
    	 * @return: void
    	 * @throws
    	 */
    	@Test
    	public void testList()
    	{
    		List<Student> students = Arrays.asList(new Student("张三丰","男",26,new Date(1988-12-12),"湖北省武汉市武昌洪山区",78451214),
    											  new Student("李雪","女",20,new Date(1991-12-18),"湖北省武汉市武昌",85451214),
    											  new Student("刘刘","男",22,new Date(1989-10-18),"湖南省长沙市",96551214),
    											  new Student("吴明","女",21,new Date(1990-12-18),"广东省深圳市",56132012));
    		root.put("students", students);
    		ft.printFtl("stu.ftl",root);
    	}


    3、解决办法

  • 相关阅读:
    MySQL 数据库 查询语句的基本操作,单表查询,多表查询
    MySQL数据库 外键,级联, 修改表的操作
    MySQL数据库 存储引擎,创建表完整的语法,字段类型,约束条件
    MySQL数据库 介绍,安装,基本操作
    python GIL全局解释器锁,多线程多进程效率比较,进程池,协程,TCP服务端实现协程
    子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程local作用,线程池,回调函数add_done_callback,TCP服务端实现并发
    并发编程 操作系统发展史,多道技术,进程,同步与异步,阻塞与非阻塞,进程的三种状态,创建进程的两种方式
    网络编程 UDP协议 TCP局域网客户端与服务端上传下载电影示例
    网络编程 TCP协议:三次握手,四次挥手,反馈机制 socket套接字通信 粘包问题与解决方法
    k8s 常用命令
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13315082.html
Copyright © 2011-2022 走看看