生成静态页面方法类
package com.xxxx.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
* @类名称: FreeMarkerManager
* @功能描述: 生成静态页面方法类
*/
public class FreeMarkerManager {
private Configuration cfg = null;
private File file=null;
private Map root=null;
private Template t = null;
private String temp_path= Sys.projectRootPath +"/template/";
public FreeMarkerManager() //创建一个管理生成静态页面的对象
{
cfg = new Configuration();//初始化配置,创建对象
//cfg.setEncoding(Locale.CHINA, "GBK");//定义FreeMarker生成静态页的编码方式
cfg.setDefaultEncoding("GBK");
root = new HashMap(); //创建一个HASH表
loadTemp();
}
public void mkdir(String path)//读取上传图片的方法
{
File file = null;
File d = new File(path);//读取File文件的路径
if (!(d.exists())) {//执行
d.mkdirs();
}
}
public void loadTemp()//读取模板位置 temp 模板的位置
{
try {
cfg.setDirectoryForTemplateLoading(new File(temp_path));
} catch (IOException e) {
e.printStackTrace();
}
}
public void putRoot(String sign,long str)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,str);
}
public void putRoot(String sign,String str)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,str);
}
public void putRoot(String sign,int str)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,str);
}
public void putRoot(String sign,Date str)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,str);
}
public void putRoot(String sign,List list)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,list);
}
public void putRoot(String sign,StringBuffer str)//往HASH表里添加数据 sign 名字 str 值
{
root.put(sign,str);
}
// 生成静态页面 mb 模板的名字(不包括扩展名) path 生成文件的路径 ,fileName 生成文件的文件名包括扩展名
public void createFile(String mb,String path,String fileName)
{
try {
t = cfg.getTemplate(mb+".ftl");
t.setEncoding("GBK");
} catch (IOException e2) {
e2.printStackTrace();
}
file = new File(path+fileName);
file.delete();
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e3) {
e3.printStackTrace();
}
}
try {
FileWriter fw = new FileWriter(file);
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file),"GBK"));
try {
t.process(root, out);
} catch (TemplateException e1) {
e1.printStackTrace();
}
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}