前面一篇文章數據模板是個map時展示瞭如何生成靜態文件,如果數據模板裏面的數據是一個對象時該如何寫呢?
下面就展示一下這種情況下的代碼是如何寫的;
package com.neteae.web.test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import com.netease.web.model.User;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreemarkerModel {
public static void main(String args[]){
User user = new User();
user.setName("小謝");
Map<String,User> root = new HashMap<String,User>();
root.put("user", user);
Configuration cfg = new Configuration();//Configuration讀取模板文件
try {
cfg.setDirectoryForTemplateLoading(new File("WebContent/WEB-INF/ftl/test"));//制定模板文件的目錄
Template template = cfg.getTemplate("freemarkermodel.ftl");//Template模板
Writer writer = new FileWriter(new File("freemarkermodel.html"));//產生的文件
template.process(root, writer);//將模板和數據產生文件
writer.flush();//將數據從緩存中清空;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
User對象:
package com.netease.web.model;
public class User {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
模板文件:
<html>
<head>
<title>測試下freemarker模板</title>
</head>
<body>
你好,${user.name}
</body>
</html>
執行程序: