生成静态页面方法类

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();

              }

       }

}

posted @ 2013-06-13 14:54  钢板  阅读(176)  评论(0编辑  收藏  举报