国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Freemarker工具類

2019-11-14 21:07:42
字體:
來源:轉載
供稿:網友
Freemarker工具類

Freemarker文件模板工具類

提供了解析生成文件、解析生成字符串的兩個方法!

package org.lunatic.util;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.StringWriter;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class FreemarkerUtil {        PRivate static final Integer TEMPLATE_LOADING_FILE = 1;    private static final Integer TEMPLATE_LOADING_PROJECT = 2;    private static Configuration freemarkerConfig;        static{        try {            initConfig(TEMPLATE_LOADING_FILE, "E:/Lunatic/workspaces/FreemarkerDemo/ftl");        } catch (Exception e) {            e.printStackTrace();        }    }        /**     * 初始化Freemarker參數配置     * @param type 模板文件夾路徑類型,1:文件系統路徑;2:項目路徑     * @param dir 模板文件夾路徑,當type=1時,文件系統中的絕對路徑;當type=2時,項目中相對路徑,與src同級開始,以"/開頭"     * @throws Exception      */    public static void initConfig(Integer type,String dir) throws Exception{        /**         * 通過Freemaker的Configuration讀取相應的ftl,配置Freemarker模板參數信息         */        freemarkerConfig = new Configuration();        /**         * 設置模板本件夾路徑:         * 1、setDirectoryForTemplateLoading,文件系統絕對路徑         * 2、setClassForTemplateLoading項目相對路徑         */        if(TEMPLATE_LOADING_FILE == type){            try {                freemarkerConfig.setDirectoryForTemplateLoading(new File(dir));            } catch (IOException e) {                throw new Exception("設置模板文件夾異常",e);            }                                }        if(TEMPLATE_LOADING_PROJECT == type){            freemarkerConfig.setClassForTemplateLoading(FreemarkerUtil.class,dir);        }    }    /**     * 獲取Freemarker模板文件     * @param name 文件名     * @return     */    public static Template getTemplate(String name) {        Template temp = null;        try {            temp = freemarkerConfig.getTemplate(name,"UTF-8");        } catch (IOException e) {            e.printStackTrace();        }        return temp;            }        /**     * 將解析之后的文件內容保存到文件中     * @param name 模板文件名     * @param root 數據Map     * @param outFile 保存文件路徑     */    public static void printFile(String name,Map<String,Object> root,String outFile) {        FileWriter out = null;        try {            //通過一個文件輸出流,就可以寫到相應的文件中            out = new FileWriter(new File(outFile));            Template temp = getTemplate(name);            temp.process(root, out);        } catch (IOException e) {            e.printStackTrace();        } catch (TemplateException e) {            e.printStackTrace();        } finally {            try {                if(out!=null) out.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }        /**     * 將解析之后的文件內容返回字符串     * @param name 模板文件名     * @param root 數據Map     * @return     */    public static String printString(String name,Map<String,Object> root) {        StringWriter out = new StringWriter();        try {            //通過一個文件輸出流,就可以寫到相應的文件中            Template temp = getTemplate(name);            temp.process(root, out);        } catch (IOException e) {            e.printStackTrace();        } catch (TemplateException e) {            e.printStackTrace();        } finally {            try {                if(out!=null) out.close();            } catch (IOException e) {                e.printStackTrace();            }        }        return out.toString();    }        /**     * 將解析之后的文件內容打印在控制臺     * @param name 模板文件名     * @param root 數據Map     */    public static void printConsole(String name,Map<String,Object> root) {        System.out.println(printString(name, root));    }        }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥芬河市| 理塘县| 阳朔县| 中江县| 海口市| 邵阳市| 唐山市| 三门峡市| 嘉祥县| 张家界市| 无棣县| 曲沃县| 尼勒克县| 舞钢市| 克山县| 五莲县| 黄梅县| 噶尔县| 搜索| 德令哈市| 正蓝旗| 呼玛县| 闵行区| 通州区| 鱼台县| 四平市| 朝阳区| 曲阜市| 会泽县| 馆陶县| 石首市| 沾益县| 四川省| 昂仁县| 循化| 松滋市| 盖州市| 原阳县| 红桥区| 尼勒克县| 湘潭市|