FreeMarker入門教程


摘要: 在Java模板引擎 FreeMarker介紹中,我們已經對freemarker有了一定的了解,這一節是FreeMarker入門教程。下載freemarker,定義模板文件,輸出到控制台和文件中

Java模板引擎 FreeMarker介紹中,我們已經對freemarker有了一定的了解,這一節是FreeMarker入門教程

 

下載freemarker

http://freemarker.sourceforge.net/freemarkerdownload.html

項目文件:freemarker-2.3.19.tar.gz

中文文檔:FreeMarker_Manual_zh_CN.pdf

解壓后把freemarker.jar加到classpath中即可完成環境的配置

 

定義模板文件

我們創建兩個模板文件,一個是純文本的模板文件,另一個是HTML格式的模板文件,主要是為了說明,freemarker的模板文件可以是任何格式的

01.ftl

你好:${username}

02.ftl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>${username}</h1>
</body>
</html>

創建freemarker工具類

這個類,主要是獲取模板定義文件,並根據輸入的數據輸出到控制台和文件中

package com.naxsu.freemarker;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerUtil {
    /**
     * 獲取模板
     * @param name
     * @return
     */
    public Template getTemplate(String name) {
    try {
        //通過Freemaker的Configuration讀取相應的ftl
        Configuration cfg = new Configuration();
        //設定去哪里讀取相應的ftl模板文件
        cfg.setClassForTemplateLoading(this.getClass(),"/ftl");
        //在模板文件目錄中找到名稱為name的文件
        Template temp = cfg.getTemplate(name);
        return temp;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
    }
    /**
     * 輸出到控制台
     * @param name 模板文件名
     * @param root
     */
    public void print(String name,Map<String,Object> root) {
        try {
            //通過Template可以將模板文件輸出到相應的流
        Template temp = this.getTemplate(name);
        temp.process(root, new PrintWriter(System.out));
    } catch (TemplateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    }
    /**
     * 輸出到文件
     * @param name
     * @param root
     * @param outFile
     */
    public void fprint(String name,Map<String,
                       Object> root,String outFile) {
    FileWriter out = null;
    try {
            //通過一個文件輸出流,就可以寫到相應的文件中
        out = new FileWriter(
                      new File("E:\\freemarker\\ftl\\"+outFile));
        Template temp = this.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();
        }
    }
    }
}

  模擬數據,進行測試

public class TestFreemarker {
    FreemarkerUtil fu;
    Map<String,Object> root = null;
    @Before
    public void setUp() {
        fu = new FreemarkerUtil();
        root = new HashMap<String,Object>();
    }
    @Test
    public void test01() {
        //1、創建數據模型
        Map<String,Object> root = new HashMap<String,Object>();
        //2、為數據模型添加值
        root.put("username", "張三");
        //3、將數據模型和模板組合的數據輸出到控制台
        fu.print("01.ftl", root);
        fu.fprint("02.ftl", root, "01.html");
    }
}

好了,helloword到此為止,簡單入門就是如此簡單

本文鏈接:FreeMarker入門教程,本文由huangyineng原創,轉載請注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM