package cn.newgxu.bbs.common.staticHtml;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;
import javax.servlet.ServletContext;
import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* @path valhalla_hx----cn.newgxu.bbs.common.util.StaticUtil.java
*
* @author 集成显卡
* @since 4.0.0
* @version $Revision 1.1$
* @date 2011-6-4
* @describe 页面静态化的功能类
*
*/
public class StaticUtil {
/**
* @方法名称 :creatHtml
* @功能描述 :写出html静态文件
* @返回值类型 :boolean
* @param templatePath 模版路径
* @param templateName 模版名
* @param saveName 保存的文件名
* @param data 数据
* @return
*
* @创建日期 :2011-6-1
* @修改记录 :
*/
public static boolean creatHtml(String templatePath,String templateName,String saveName,Map<?,?> data){
try{
Configuration cfg=new Configuration();
cfg.setDirectoryForTemplateLoading(new File(templatePath));
//cfg.setObjectWrapper(new DefaultObjectWrapper());
Template template=cfg.getTemplate(templateName, "UTF-8");
Writer out=new OutputStreamWriter(new FileOutputStream(saveName));
template.process(data, out);
out.flush();
out.close();
System.out.println("成功生成文件"+templatePath+"/"+saveName);
return true;
}catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* @方法名称 :creatHtml
* @功能描述 :根据 servletconext 上下文 生成html静态文件
* @返回值类型 :boolean
* @param templatePath 模版路径
* @param templateName 模版名
* @param saveName 保存的文件名
* @param data 数据
* @return
*
* @创建日期 :2011-6-4
* @修改记录 :
*/
public static boolean creatHtml(ServletContext context,String templateName,String saveName,Map<?,?> data){
try{
Configuration cfg=new Configuration();
cfg.setServletContextForTemplateLoading(context, "/");
cfg.setEncoding(Locale.getDefault(), "utf-8");
Template template=cfg.getTemplate(templateName, "UTF-8");
System.out.println("开始生成文件"+context.getRealPath("/")+saveName);
Writer out=new OutputStreamWriter(new FileOutputStream(new File(context.getRealPath("/")+saveName)));
template.process(data, out);
out.flush();
out.close();
System.out.println("成功生成文件"+saveName);
return true;
}catch (Exception e) {
e.printStackTrace();
return false;
}
}
}