急急急 关于freemarker的问题
实体类
package com.bean;
public class NewsItem {
private String title;
private String addTime;
private String showContent;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAddTime() {
return addTime;
}
public void setAddTime(String addTime) {
this.addTime = addTime;
}
public String getShowContent() {
return showContent;
}
public void setShowContent(String showContent) {
this.showContent = showContent;
}
public void loadData(){
this.title = "aaaaaaaaaaaaaaaa" ;
this.addTime="2009-12-12" ;
this.showContent="avvvvvvvvvvvvvvvvvv" ;
}
}
模板template.ftl
<table border=1>
<tr><td>${ni.title}</td><td>${ni.addTime}</td><td>${ni.showContent}</td></tr>
</table>
FreeMarkerTest1 类
package com.ftl;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import com.bean.NewsItem;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreeMarkerTest1 {
/**
* @param args
*/
private NewsItem ni = null ;
public static void main(String[] args) {
// TODO Auto-generated method stub
FreeMarkerTest1 test = new FreeMarkerTest1() ;
test.sayHello("Hermit") ;
}
public void sayHello(String name){
Configuration freemarkerCfg = new Configuration() ;
freemarkerCfg.setClassForTemplateLoading(this.getClass(), "/") ;
freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8") ;
Template template ;
Locale.setDefault(Locale.ENGLISH) ;
try{
template = freemarkerCfg.getTemplate("template.ftl") ;
template.setEncoding("UTF-8") ;
ni = new NewsItem();
Map<String,Object> root = new HashMap<String,Object>() ;
// List list = new ArrayList() ;
ni.setAddTime("2009.12.12") ;
ni.setShowContent("aaaaaaaaaaaa") ;
ni.setTitle("bbbbbbbbbbbbbbbbb") ;
// list.add(ni) ;
root.put("ni", ni) ;
File htmlFile = new File("d:/test/t.html");
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(htmlFile), "UTF-8"));
// StringWriter writer = new StringWriter() ;
template.process(root, out) ;
out.flush();
System.out.println(out.toString());
}catch(Exception e){
e.printStackTrace() ;
}
}
public NewsItem getNi() {
return ni;
}
public void setNi(NewsItem ni) {
this.ni = ni;
}
}
运行后抛出的异常
Don't know how to present an object of this type to a template: com.bean.NewsItem
Quoting problematic instruction:
----------
==> ${ni.title} [on line 3, column 9 in template.ftl]
----------
Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: Don't know how to present an object of this type to a template: com.bean.NewsItem
at freemarker.template.SimpleObjectWrapper.handleUnknownType(SimpleObjectWrapper.java:139)
at freemarker.template.SimpleObjectWrapper.wrap(SimpleObjectWrapper.java:116)
at freemarker.template.WrappingTemplateModel.wrap(WrappingTemplateModel.java:131)
at freemarker.template.SimpleHash.get(SimpleHash.java:186)
at freemarker.template.Environment.getGlobalVariable(Environment.java:693)
at freemarker.template.Environment.getVariable(Environment.java:679)
at freemarker.template.Identifier._getAsTemplateModel(Identifier.java:69)
at freemarker.template.Expression.getAsTemplateModel(Expression.java:88)
at freemarker.template.Dot._getAsTemplateModel(Dot.java:74)
at freemarker.template.Expression.getAsTemplateModel(Expression.java:88)
at freemarker.template.Expression.getStringValue(Expression.java:92)
at freemarker.template.DollarVariable.accept(DollarVariable.java:76)
at freemarker.template.Environment.visit(Environment.java:180)
at freemarker.template.MixedContent.accept(MixedContent.java:91)
at freemarker.template.Environment.visit(Environment.java:180)
at freemarker.template.Environment.process(Environment.java:166)
at freemarker.template.Template.process(Template.java:238)
at com.ftl.FreeMarkerTest1.sayHello(FreeMarkerTest1.java:52)
at com.ftl.FreeMarkerTest1.main(FreeMarkerTest1.java:28)
请问高手是什么问题呀,我原来传List的值都可以顺利输出,怎么传一个实体对象就不行了????????