package freemarker;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
public classTest2{
private Configurationcfg;
public ConfigurationgetCfg(){
return cfg;
}
public void init()throws Exception{
cfg=new Configuration();
cfg.setDirectoryForTemplateLoading(newFile("bin/freemaker"));
}
public static void main(String[]args)throws Exception{
Test2 obj=new Test2();
obj.init();
Map root=new HashMap();
root.put("user","java2000.net");
Map latestProduct=new HashMap();
latestProduct.put("url","http://www.java2000.net");
latestProduct.put("name","Java世纪网");
root.put("latestProduct",latestProduct);
Templatet=obj.getCfg().getTemplate("Test2.ftl");
Writer out=new OutputStreamWriter(new FileOutputStream("Test2.html"),"GBK");
t.process(root,out);
System.out.println("Successfull................");
}
}
模板
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome${user}!</h1>
<p>Ourlatestproduct:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
运行结果
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcomejava2000.net!</h1>
<p>Ourlatestproduct:
<a href="http://www.java2000.net">Java世纪网</a>!
</body>
</html>
分析:
数据结构为
(root)
|
+- user = "java2000.net"
|
+- latestProduct
|
+- url = "http://www.java2000.net"
|
+- name = "Java世纪网"
我们使用嵌套的Map给其传递参数