1。首先建一个工程(我建的是Web Project)
2。在WebRoot下建一个文件夹,命名为 freemarker , 在文件夹中建一个test.ftl(模板文件)文件,内容下如:
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
freemarkerTEST: ${persion}
</body>
</html>
3。建一个类内容下如:
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.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
public class Test {
public static void main(String[] args) throws Exception {
//模板路径
String dir = Test.class.getResource("/").getPath().split("WEB-INF")[0]
+ "freemarker";
Configuration cfg = new Configuration();
//加载freemarker模板文件
cfg.setDirectoryForTemplateLoading(new File(dir));
//设置对象包装器
cfg.setObjectWrapper(new DefaultObjectWrapper());
//设计异常处理器
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
//定义并设置数据
Map<String, String> data = new HashMap<String, String>();
data.put("persion", "我爸是李刚");
//获取指定模板文件
Template template = cfg.getTemplate("test.ftl");
//定义输入文件,默认生成在工程根目录
Writer out = new OutputStreamWriter(new FileOutputStream("test.html"),
"GBK");
//最后开始生成
template.process(data, out);
System.out.println("successful");
}
}