• SpringBoot中的Freemarker 模板


    Freemarker模板概述:

      在使用Freemarker模板之前我们要先知道一些关于Freemarker模板的知识,首先FreeMarker 是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML 网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个 Java 类库,是一款程序员可以嵌入他们所开发产品的组件。

      其次FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language (FTL)。属于一种简单的,专用的语言。比如数据库查询和业务运算之后, 模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。

      总体上,模板和数据模型是 FreeMarker 来生成输出所必须的组成部分:模板 + 数据模型 = 输出,Freemarker 的作用主要是将动态页面转换成伪静态 html 页面,提高搜索引擎的收录。具体框架的介绍和用法可参考 http://freemarker.foofun.cn(官网)。

    Freemarker 模板语法:模板的默认后缀为.ftl,内容除了静态内容外,其数据模型主要包括标量、指令、方法等
      标量的四种类型:
            1、布尔值。
            2、数字。
            3、字符串。
            4、日期类型(子类型:日期(没有时间部分),时间或者日期-时间)
      总体的结构:
              1、文本:文本会照着原样来输出
            2、插值:这部分的输出会被计算的值来替换。插值由 ${ and } 所分隔(或者 #{ and }
            3、FTL 标签:FTL标签和HTML标签很相似,但是它们却是给FreeMarker的指示, 而且不会打印在输出内容中(FTL标签也被称为 指令)
            4、注释:注释和HTML的注释也很相似,但它们是由 <#-- 和 -->来分隔的。注释会被FreeMarker直接忽略, 更不会在输出内容中显示
            5、一个freemarker模板里可以有文本、插值、ftl(指令)、注释
      Freemarker中的指令:
            1、if指令:作用:使用 if 指令可以有条件地跳过模板的一些片段
                 语法结构:
                    

            2、list指令(遍历集合): 作用:当需要列表显示内容时,list指令是必须的。list 指令执行在 list 开始标签和 list 结束标签

                       语法结构:

                    

                      注意事项:list是个对象,可以通过打点调用属性

            3、include 指令: 作用:用于在模板中插入另外一个 FreeMarker 模板文件

                     语法:<#include ".../test.ftl">

     SpringBoot集成Freemarker模版:

        1、创建maven项目

        2、引入freemarker模板所需要的依赖文件

          

        3、配置freemarker所需要配置的属性

          

        4、编写controller准备一些测试数据

        5、编写ftl模板

        6、运行项目,测试结果

    freemarker的优势:
        1、性能、普通的页面 freemarker 性能较差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker 的性能比使用 tag 和 el 的 jsp 好

        2、内置大量常用功能。比如 html 过滤,日期金额格式化等等,使用非常方便
        3、宏定义比 jsp tag 方便
        4、支持 jsp 标签
        5、可以实现严格的 mvc 分离

  • 相关阅读:
    myeclipse的debug模式启动不了,但run模式可以启动
    修改tomcat的端口号
    mybatis报错:Caused by: java.lang.IllegalArgumentException: Caches collection already contains value for com.crm.dao.PaperUserMapper
    mysql报错:java.sql.SQLException: Incorrect string value: 'xE4xB8x80xE6xACxA1...' for column 'excelName' at row 1
    修改tomcat命令黑窗口的名字
    myeclipse无法部署项目的解决
    我说精通字符串,面试官竟然问我 Java 中的 String 有没有长度限制?
    14个Java并发容器,你用过几个?
    6 种微服务 RPC 框架,你知道几个?
    Java中Set与Set<?>到底区别在哪?
  • 原文地址:https://www.cnblogs.com/snyv-nice/p/13521659.html
Copyright © 2020-2023  润新知