Test.java
package org.test;
import java.util.*;
import java.io.*;
import freemarker.template.*;
public class Test {
public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("E:/new"));
cfg.setObjectWrapper(new DefaultObjectWrapper());
Template temp = cfg.getTemplate("test.ftl");
User user = new User();
user.setId("1");
user.setAge("88");
user.setName("ttt");
Map root = new HashMap();
root.put("user", user);
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();
System.out.println("\nOK!");
}
}
class User {
private String id;
private String name;
private String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
test.ftl
Welcome
Welcome
id:${user.id}
name:${user.name}
age:${user.age}
错误:
2008-8-1 10:50:44 freemarker.log.JDK14LoggerFactory$JDK14Logger error
严重:
Expression user.id is undefined on line 7, column 6 in test.ftl.
The problematic instruction:
==> ${user.id} [on line 7, column 4 in test.ftl]
Java backtrace for programmers:
freemarker.core.InvalidReferenceException: Expression user.id is undefined on line 7, column 6 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:208)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.Environment.process(Environment.java:188)
at freemarker.template.Template.process(Template.java:237)
at org.test.Test.main(Test.java:23)
Exception in thread "main"
Expression user.id is undefined on line 7, column 6 in test.ftl.
The problematic instruction:
==> ${user.id} [on line 7, column 4 in test.ftl]
Java backtrace for programmers:
freemarker.core.InvalidReferenceException: Expression user.id is undefined on line 7, column 6 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:208)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:208)
at freemarker.core.Environment.process(Environment.java:188)
at freemarker.template.Template.process(Template.java:237)
at org.test.Test.main(Test.java:23)