zoukankan      html  css  js  c++  java
  • 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 命令 
        
        <#-- 注释 --> 
    
        <@使用自定义命令 
    
        ??是判断对象是否存在 
    
        ?函数调用
    
    
  • 相关阅读:
    杭电2054
    M1/M2总结
    软件开发相关的读书笔记 问题与方法
    代码复审1234跟我一起来
    电梯调度算法简述
    Pair_Work Project
    读书笔记摘录:
    Individual Project
    个人阅读作业——软件工程M1/M2的总结
    个人阅读作业2
  • 原文地址:https://www.cnblogs.com/pomelo-lemon/p/11528856.html
Copyright © 2011-2022 走看看