SpringBoot 引入 Freemarker模板引擎 和 对应的基本语法

一、特性

支持:HTML、XML、RTF、java

易于嵌入到产品中:轻量级;

不需要 Servlet 环境

环境的搭建 pom 依赖

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-freemarker</artifactId>

    <version>2.1.4.RELEASE</version>

</dependency>

设置 FreeMarKar 模板引擎 yml 配置

#设置 FreeMarKar 模板引擎

  freemarker:

    request-context-attribute: request # req 访问

    request suffix: .ftl #模板后缀名

    content-type: text/html #文档类型 

    charset: UTF-8 #页面编码格式

    cache: false #缓存配置 false 关掉

    template-loader-path: classpath:/templates/ #模板加载路径 按需配置

    enabled: true

    settings: number_format: '0.##' #数字格式化,无小数点

二、基本数据类型

布尔型

    ${变量?string} true

日期型

    $ {变量?string('yyyy-MM-dd')}                                     2021-06-16

    $ {变量?string('yyyy.MM.dd')}                                      2021.06.16

    $ {变量?string('yyyy 年 MM 月 dd 日')}                        2021 年 06 月 16 日

    $ {变量?string('yyyy.MM.dd HH:mm:ss')}                     2021.06.16 10:43:18

    $ {变量?string('yyyy-MM-dd HH:mm:ss')}                    2021-06-16 10:46:50

    $ {变量?string('yyyy 年 MM 月 dd 日 HH:mm:ss')}       2021 年 06 月 16 日 10:49:34

    $ {变量?date}                                                                2021-6-16

    $ {变量?datetime}                                                         2021-6-16 10:43:18

    $ {变量?time}                                                                10:45:20

数值型 数值型(默认)

    $ {变量}                               20

    $ {变量?c}                          3000                        去掉 3,000 的 逗号

货币型

    $ {变量?string.currency}    ¥0.57     

百分比型

    $ {变量?string.percent}       57%       

字符串型

    $ {变量}                               freemarker hello world

    $ {变量?cap_first}               Freemarker hello world                 首字母大写输出

    $ {变量?uncap_first}           freemarker hello world                  首字母小写输出 

    $ {变量?upper_case}          FREEMARKER HELLO WORLD  字母转大写

    $ {变量?lower_case}           freemarker hello world                  字母转小写

    $ {变量?length}                    22                                                 字符串长度

    $ {变量?starts_with("free")?string} true                                     判断 是否以**开始

    $ {变量?ends_with("world")?string} true                                    判断 是否以**结束

 截取字符串 并显示

${变量[0..10]}             单个字符串截取

  $(对象.属性[0..10])                 对象的属性数据截取

转换类型     

字符串转 数字      ${ 变量?number } 

做判断的话   

左边大于右边 <#if 变量?number gt  0 >

                                  ....

                       </#if>

左边小于右边 <#if 变量?number lt  3 >

                             .......

                       </#if>

等于               <#if 变量?number ==  2 >

                             .......

                       </#if>

转换类型     

数字转 字符串      ${ 变量?string } 

做判断的话   

等于               <#if 变量?string ==  "R" >

                              .......

                       </#if>

sequence 类型

数组遍历

获取总长度      ${arrayList?size}     意思就是===> 集合?size

获取 下标        ${bean_index}         意思就是===> 集合的具体元素_index

获取最后一个  ${bean_has_next}   意思就是===> 集合的具体元素_has_next

<#if arrayString??>

    <#list arrayString as str>        ${str} 

    </#list>

</#if>

集合遍历 对象

<#if userList??>

    <#list userList as user >

        ${user.id} +${user.userName}+${user.passWord}

    </#list>

</#if>

升序

<#if userList??>

    <#list userList?sort as user>

        ${user.id}+${user.userName}+${user.passWord}

    </#list>

</#if>
倒序

<#if userList??>

    <#list userList?reverse as user>

        ${user.id}+${user.userName}+${user.passWord}

    </#list>

</#if>
根据某个属性字段进行排序

升序

<#if userList??>

    <#list userList?sort_by("userName") as user>

        ${user.id}+${user.userName}+${user.passWord}

    </#list>

</#if>
hash 类型

<#if nameMap??>

    <#list nameMap?keys as str>

        ${str}=${nameMap[str]}

    </#list>

</#if>

三、指令

定义变量

    <#assign x>

        ....

    </#assign>

运算符

    ?size     长度

算术运算符

    +、-、*、/、%

逻辑运算符

    &&、||、!

比较运算符

    大于号:      >     ( gt )     (推荐使用 gt)

    小于号:      <     ( lt )      (推荐使用 lt)

    大于等于:  >=   ( gte )   (推荐使用 gte)

    小于号:      <=   ( lte )    (推荐使用 lte)

    等于:          ==

    不等于 :     !=

空值运算符

    判断是否为空,返回布尔类型 :     ??

    判断是否为空,返回布尔类型 :     !          (或者  !"" 表示为空时赋值为默认值 "" 空串 )

定义宏

    <#macro test01>

        hello Freemarker

    </#macro>

调用宏

<@test01></@test01>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值