freemark 解释
package com.page.freemark;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.page.vo.StudentInfo;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
*
* @author LiuQing
* @version 1.0
* @date 2014-6-9
*
*/
public class FreeMarkHelloWorld {
public static void main(String[] args) throws IOException, TemplateException {
Configuration cfg = new Configuration();
cfg.setDefaultEncoding("UTF-8");
//setting Dicectory for template
cfg.setDirectoryForTemplateLoading(new File("f:\\umn-freemark"));
//读取template
Template template = cfg.getTemplate("hello.ftl");
//传入值
Map<String,Object> dataModel = new HashMap<String,Object>();
dataModel.put("hello", "LiuQing");
List<StudentInfo> infoes = new ArrayList<StudentInfo>();
for (int i = 0; i < 10; i++) {
StudentInfo info = new StudentInfo();
info.setName(" qing " + i);
info.setSex("male" + i);
info.setAge(i);
infoes.add(info);
}
dataModel.put("students", infoes);
FileOutputStream outputStream = new FileOutputStream("f:\\test.html");
PrintWriter out = new PrintWriter(outputStream);
template.process(dataModel, out);
out.flush();
out.close();
outputStream.close();
}
}
模板文件
<html>
<head></head>
<body>
My name is ${hello}
<table width="100" border="1" >
<#list students as m>
<tr>
<td>${m.name}</td>
<td>${m.sex}</td>
<td>${m.age}</td>
</tr>
</#list>
</table>
</body>
</html>
生成后的文件
<html>
<head></head>
<body>
My name is LiuQing
<table width="100" border="1" >
<tr>
<td> qing 0</td>
<td>male0</td>
<td>0</td>
</tr>
<tr>
<td> qing 1</td>
<td>male1</td>
<td>1</td>
</tr>
<tr>
<td> qing 2</td>
<td>male2</td>
<td>2</td>
</tr>
<tr>
<td> qing 3</td>
<td>male3</td>
<td>3</td>
</tr>
<tr>
<td> qing 4</td>
<td>male4</td>
<td>4</td>
</tr>
<tr>
<td> qing 5</td>
<td>male5</td>
<td>5</td>
</tr>
<tr>
<td> qing 6</td>
<td>male6</td>
<td>6</td>
</tr>
<tr>
<td> qing 7</td>
<td>male7</td>
<td>7</td>
</tr>
<tr>
<td> qing 8</td>
<td>male8</td>
<td>8</td>
</tr>
<tr>
<td> qing 9</td>
<td>male9</td>
<td>9</td>
</tr>
</table>
</body>
</html>
package com.page.vo;
public class StudentInfo {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}