FreeMarker 入门示例

Posted pomelo-lemon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 命令 
    
    <#-- 注释 --> 

    <@使用自定义命令 

    ??是判断对象是否存在 

    ?函数调用

 

以上是关于FreeMarker 入门示例的主要内容,如果未能解决你的问题,请参考以下文章

FreeMarker开发-入门

Spring boot入门:SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示(示例(代码

FreeMarker 快速入门

Freemarker入门案例

FreeMarker 快速入门

FreeMarker入门