Freemarker错误

问题描述

public class HelloFreeMarker {private Configuration cfg ;public void init() throws Exception {cfg = new Configuration();cfg.setDirectoryForTemplateLoading(new File("src\com\s2freemarker\exer\templates"));}public void process() throws Exception{Map<Object,Object> root = new HashMap<Object,Object>();root.put("name", "FreeMarker");root.put("msg", "First example for freemarker .");Template t = cfg.getTemplate("test.ftl");t.process(t, new OutputStreamWriter(System.out));}/** * @param args */public static void main(String[] args) throws Exception{HelloFreeMarker hfm = new HelloFreeMarker();hfm.init();hfm.process();}} 模版文件: ${name},hello!${msg} 错误提示: Aug 18, 2011 10:49:25 AM freemarker.log.JDK14LoggerFactory$JDK14Logger errorSEVERE: Expression msg is undefined on line 1, column 17 in test.ftl.Expression msg is undefined on line 1, column 17 in test.ftl.The problematic instruction:----------==> ${msg} [on line 1, column 15 in test.ftl]----------Java backtrace for programmers:----------freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl.at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)at freemarker.core.Expression.getStringValue(Expression.java:118)at freemarker.core.Expression.getStringValue(Expression.java:93)at freemarker.core.DollarVariable.accept(DollarVariable.java:76)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.MixedContent.accept(MixedContent.java:92)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.Environment.process(Environment.java:190)at freemarker.template.Template.process(Template.java:237)at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30)at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39)test.ftl,hello!Expression msg is undefined on line 1, column 17 in test.ftl.The problematic instruction:----------==> ${msg} [on line 1, column 15 in test.ftl]----------Java backtrace for programmers:----------freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl.at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)at freemarker.core.Expression.getStringValue(Expression.java:118)at freemarker.core.Expression.getStringValue(Expression.java:93)at freemarker.core.DollarVariable.accept(DollarVariable.java:76)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.MixedContent.accept(MixedContent.java:92)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.Environment.process(Environment.java:190)at freemarker.template.Template.process(Template.java:237)at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30)at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39)Exception in thread "main" Expression msg is undefined on line 1, column 17 in test.ftl.The problematic instruction:----------==> ${msg} [on line 1, column 15 in test.ftl]----------Java backtrace for programmers:----------freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl.at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)at freemarker.core.Expression.getStringValue(Expression.java:118)at freemarker.core.Expression.getStringValue(Expression.java:93)at freemarker.core.DollarVariable.accept(DollarVariable.java:76)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.MixedContent.accept(MixedContent.java:92)at freemarker.core.Environment.visit(Environment.java:210)at freemarker.core.Environment.process(Environment.java:190)at freemarker.template.Template.process(Template.java:237)at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30)at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39)

解决方案

t.process(t, new OutputStreamWriter(System.out)); 你这里搞错了,没有把参数传进去,改成这样:t.process(root, new OutputStreamWriter(System.out));

时间: 2024-10-04 15:55:51

Freemarker错误的相关文章

学校的网站出了一点问题(内容不同步),来求助下

问题描述 学校的网站出了一点问题,我负责收拾呢.想了好久都不知道应该怎么弄.平台是使用的VSB9VisualSiteBuilder高校系统首先来发下问题的所在.在这个图中,通知公告栏里,右边简写的那个和左边详细的两个不一样.在发表文章后,缓存刷新时间过后,右边的通知公告栏会更新,但是左边的不更新,第一条文章永远都是那一条.下面贴下两个部分的代码.这个是左边的详细文章列表里的代码<ul><#listlist_groupasgroup><li><#listgroup.

关于freemarker import 错误的问题

问题描述 两个模板在不同的文件夹里面,在其中的一个模板里用<#import"a/a.ftl"askk>时,总是报错:Errorreadingimportedfilea/a.ftl到底是哪里出错了?请指教. 解决方案 解决方案二:没有人知道吗解决方案三:如果是在同一个包下面,你可以把它改成<#import'a.ftl'askk>我考虑你那不仅仅报Errorreadingimportedfilea/a.ftl这个错可能堆栈里面还有FileNotFound解决方案四:

FreeMarker设计指南(4) (完)

设计 FreeMarker设计指南(4) (完) 4.杂项 (1)用户定义指令 l         宏和变换器变量是两种不同类型的用户定义指令,它们之间的区别是宏是在模板中使用macro指令定义,而变换器是在模板外由程序定义,这里只介绍宏 l         基本用法 Ø         宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量,下面是一个例子: <#macro greet>   <font size="+2">Hello Joe!&

FreeMarker设计指南(3)

设计 FreeMarker设计指南(3) 3.模板 (1)整体结构 l         模板使用FTL(FreeMarker模板语言)编写,是下面各部分的一个组合: Ø         文本:直接输出 Ø         Interpolation:由${和},或#{和}来限定,计算值替代输出 Ø         FTL标记:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出 Ø         注释:由<#--和-->限定,不会输出 l         下面是以一个具

FreeMarker配置(Configuration)_java

p> 基础 Configuration 是一个存放应用级别(application level)公共配置信息,以及模版(Template)可使用的全局共享变量的一个对象.同时它还负责模版(Template)实例的创建以及缓存.Configuration 实际上是freemarker.template.Configuration 对象的实例,使用其构造函数创建.通常应用使用一个共享的单实例Configuration 对象. Configuration 对象可被Template 对象的方法使用,每一

get方式-$.ajax post报403错误

问题描述 $.ajax post报403错误 通过freemarker跳转到springmvc某个controller,如果是get方式则没什么问题.如果是post,这里表单制定的是post方式,controller制定的也是post,但是跳转不过去.并且报403错误 解决方案 发生原因:是因为配置domain域时 进行了自定义配置,或对原有的domain域进行过扩展现有的配置,并配置了应用程序的安全性所在在启动doamin域后,输入http://localhost:7001/console就会

Android freemarker模板引擎应用

什么是freemarker? 在说这个之前我们都知道web和原生控件之争就那么点事.性能,加载速度,流量,数据交互-. 如果我用webView加载一个url页面,要先通过网络解析css,解析html代码,然后渲染生成页面 什么是freemarker?简单点就是,事先把上面这个html文件,放到应用中,用的时候只要传入数据就行 freemarker优点和应用 节约流量,加快网页加载速度 比如某些图表功能,用js库实现比较方便,只要事先放入html模板,传入数据就行.大大节省了流量及加载速度 或者事

Freemarker教程

以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker模板的例子,包含了以上所说的4个部分 < html><br

FreeMarker template error

在使用freemarker的过程中经常会见到如下错误: Xml代码   11 十二月 2015 15:53:09,674 ERROR freemarker.runtime:98 - Error executing FreeMarker template   FreeMarker template error:   The following has evaluated to null or missing:   ==> sex  [in template "freemarker3.html