• Freemarker使用


    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。

    它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。目前企业中:主要用Freemarker做静态页面或是页面展示

    添加依赖

    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.23</version>
    </dependency>

    不整合spring代码

    @Test
        public void genFile() throws Exception {
            // 第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对于的版本号。
            Configuration configuration = new Configuration(Configuration.getVersion());
            // 第二步:设置模板文件所在的路径。
            configuration.setDirectoryForTemplateLoading(new File("D:/workspaces-itcast/term197/e3-item-web/src/main/webapp/WEB-INF/ftl"));
            // 第三步:设置模板文件使用的字符集。一般就是utf-8.
            configuration.setDefaultEncoding("utf-8");
            // 第四步:加载一个模板,创建一个模板对象。
            Template template = configuration.getTemplate("hello.ftl");
            // 第五步:创建一个模板使用的数据集,可以是pojo也可以是map。一般是Map。
            Map dataModel = new HashMap<>();
            //向数据集中添加数据
            dataModel.put("hello", "this is my first freemarker test.");
            // 第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。
            Writer out = new FileWriter(new File("D:/temp/term197/out/hello.html"));
            // 第七步:调用模板对象的process方法输出文件。
            template.process(dataModel, out);
            // 第八步:关闭流。
            out.close();
        }

    ftl模板语法

    ● 访问map中的key

    ${key}

    ● 访问pojo的属性

    <label>学号:</label>${stu.id}<br>
    <label>姓名:</label>${stu.name}<br>
    <label>年龄:</label>${stu.age}<br>

    ● 取集合中的数据

    <#list studentList as student>
    ${student.id}/${studnet.name}
    </#list>

    ● 取循环中的下标

    <#list studentList as student>
        ${student_index}
    </#list>

    ● 判断

    <#if student_index % 2 == 0>
    <tr bgcolor="blue"> <#else>
    <tr bgcolor="red">
    </#if>

    ● 日期类型格式化

    当前日期:${date?date}<br>
    当前时间:${date?time}<br>
    当前日期和时间:${date?datetime}<br>
    自定义日期格式:${date?string("yyyyMM/dd HH:mm:ss")}

    ● include标签

    <#include "hello.ftl"/>
  • 相关阅读:
    BZOJ 4260: Codechef REBXOR(01trie+思维)
    17个CSS知识点整理
    30个很棒的jQuery幻灯片放映插件
    gitHub客户端Desktop的安装使用总结 ---基础篇
    jQuery 瀑布流动态加载效果
    【转】自适应网页设计(Responsive Web Design)
    响应式布局这件小事
    查找指定节点之后的下一个元素节点getNextElement(node)
    转 JavaScript 运动框架 Step by step
    JS常用函数封装
  • 原文地址:https://www.cnblogs.com/naixin007/p/10390472.html
Copyright © 2020-2023  润新知