SpringBoot整合Freemarker(三)

定义循环输出的宏

java 复制代码
<#macro list title items>
${title?cap_first}:
        <#list items as x>
           *${x?cap_first}
        </#list>
</#macro>

<@list items=["mouse", "elephant", "python"]  title="Animals"/>

输出结果:

Animals:

*Mouse

*Elephant

*Python

包含body 的宏

java 复制代码
<#macro repeat count>
  <#list 1..count as x>
         <#nested x, x/2, x==count>
  </#list>
</#macro>

<@repeat count=4 ; c,halfc,last>
  ${c}. ${halfc}<#if last> Last!</#if>
</@repeat> 

输出:

  1. 0.5

  2. 1

  3. 1.5

  4. 2 Last!

include关键字

语法:

java 复制代码
<#include filename options>
options包含两个属性:
encoding="GBK" 编码格式;
parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入

例子:

sql 复制代码
/common/copyright.ftl 包含内容:
Copyright 2001-2002 ${me}
All rights reserved.  
----------------------------------------------------
<#assign me = "Juila Smith">
Some test
Yeah
<#include "/common/copyright.ftl" encoding="GBK">

Import关键字

语法:

sql 复制代码
<#import path as hash>
类似于java里的import,它导入文件,然后就可以在当前文件里使用被导入文件里的宏组件
用例
假设mylib.ftl 里定义了宏copyright 那么我们在其他模板页面里可以这样使用
<#import "/libs/mylib.ftl" as my>
<@my.copyright  date="1999-2002"/>
<#-- "my"在freemarker里被称作namespace -->	

compress关键字

语法:

java 复制代码
<#compress>
  ...
</#compress>

用来压缩空白空间和空白的行

相关推荐
灵魂猎手几秒前
7. MyBatis 的 ResultSetHandler(一)
java·后端·源码
AAA修煤气灶刘哥3 分钟前
手把手教你全流程项目部署:从 Jenkins 到 Nginx 的项目实战手册
java·运维·后端
种子q_q4 分钟前
java中static 关键字详解
java·后端·面试
用户6757049885026 分钟前
全面掌握 Consul:服务注册发现、健康检查、跨数据中心一网打尽
后端
IT技术小密圈8 分钟前
图解分布式锁: 5分钟搞懂分布式锁
分布式·后端·面试
青枫8612 分钟前
流程控制
后端
青枫8616 分钟前
Java生成一个随机数
后端
用户24682670114719 分钟前
事务消息
后端
lizhongxuan20 分钟前
本体论: 构建AI的“世界观”
后端
元清加油1 小时前
【Goland】:协程和通道
服务器·开发语言·后端·网络协议·golang