FreeMarker 入門示例


FreeMarker 是一款模板引擎: 即一種基於模板和要改變的數據, 並用來生
成輸出文本(HTML 網頁、電子郵件、配置文件、源代碼等)的通用工具。

工作原理
          模板(基於freemarket語法編寫的.ftl文件) + 數據模型(java對象) = 輸出(html、xml、java、jsp等文件)

 

 

1. 創建工程

2. 添加依賴

 <dependencies>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

3. 創建模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Freemarker 測試</title> </head>
<body>
<#--這是 freemarker注釋,不會輸出到文件中 -->

<h1>${name};${message}</h1>

</body>
</html>

 

4. 生成文件

@Test
    public void test() throws Exception {

        //1.創建一個 Configuration 對象, 參數是freemarker 的版本號
        Configuration configuration = new Configuration(Configuration.getVersion());

        //2.設置模板文件所在的路徑
        configuration.setClassForTemplateLoading(FreemarkerTest.class, "/ftl");

        //3. 設置模板文件使用的字符集
        configuration.setDefaultEncoding("utf-8");

        //4. 獲取模板
        Template template = configuration.getTemplate("test.ftl");

        //5. 創建一個模板使用的數據集,可以是 pojo 也可以是 map;一般是 Map
        Map<String, Object> map = new HashMap<>();
        map.put("name", "安莉莉");
        map.put("message", "hello nice to meet you !");

        //6. 創建一個 Writer 對象,一般創建 FileWriter 對象,指定生成的文件名
        FileWriter fileWriter = new FileWriter("C:\\MyFiles\\pomelo\\test\\test.html");

        //7. 調用模板對象的 process 方法輸出文件
        template.process(map, fileWriter);

        //8. 關閉流
        fileWriter.close();


    }

 


常見符號

    ${ }插值;只能輸出數值、日期或者字符串,其它類型不能輸出。 

    <#freemarker 命令 
    
    <#-- 注釋 --> 

    <@使用自定義命令 

    ??是判斷對象是否存在 

    ?函數調用

 


免責聲明!

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



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