FreeMarker基础语法

FreeMarker是一种模板语言,用于动态生成HTML等文档。本文档详细介绍了FreeMarker的基础语法,包括数据类型(如字符串、数值、布尔值、集合、Map、时间对象和JAVABEAN处理)、输出变量值、字符串操作、集合和Map操作、算术和逻辑运算符、内建函数、空值处理以及模板开发语句,如FTL标签、注释和指令的使用。
摘要由CSDN通过智能技术生成

FreeMarker基础语法

${参数名}

数据类型

零、申明变量

assign 可以用来申明变量或给变量起别名

<#assign keys=1/>

Map<String, String> map = new HashMap<>();
<#assign keys=map?keys/> 

一、直接指定值

直接指定值可以是字符串、数值、布尔值、集合及Map对象。

1. 字符串

直接指定字符串值使用单引号或双引号限定。字符串中可以使用转义字符”"。如果字符串内有大量的特殊字符,则可以在引号的前面加上一个字母r,则字符串内的所有字符都将直接输出。

2. 数值

数值可以直接输入,不需要引号。FreeMarker不支持科学计数法。

当数值过1000时,ftl输出整型会变成1,000

在输出的变量后面加上 ?c 可以输出1000

例如: id=7777
${
   id?c}		#7777
${
   id}		#7,777
3. 布尔值

直接使用true或false,不使用引号。

4. 集合

集合用中括号包括,集合元素之间用逗号分隔。
使用数字范围也可以表示一个数字集合,如1…5等同于集合[1, 2, 3, 4, 5];同样也可以用5…1来表示[5, 4, 3, 2, 1]。

5. Map对象

Map对象使用花括号包括,Map中的key-value对之间用冒号分隔,多组key-value对之间用逗号分隔。
注意:Map对象的key和value都是表达式,但key必须是字符串。

6. 时间对象

root.put(“date1”, new Date());

${date1?string(“yyyy-MM-dd HH:mm:ss”)}

7. JAVABEAN的处理

​ Freemarker中对于javabean的处理跟EL表达式一致,类型可自动转化!非常方便!

二、输出变量值

FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性。

1. 顶层变量

所谓顶层变量就是直接放在数据模型中的值。输出时直接用${variableName}即可。

2. 输出集合元素

可 以根据集合元素的索引来输出集合元素,索引用中括号包括。如: 输出[“1”, “2”, “3”]这个名为number的集合,可以用${number[0]}来输出第一个数字。FreeMarker还支持用**number[1…2]**来表示原 集合的子集合[“2”, “3”]。

3. 输出Map元素
对于JavaBean实例,FreeMarker一样把它看作属性为key,属性值为value的Map对象。
输出Map对象时,可以使用点语法或中括号语法,如下面的几种写法的效果是一样的:

book.author.name
book.author["name"]
book["author"].name
book["author"]["name"]

遍历输出:
Map<String, String> map = new HashMap<>();

<#list map?keys as key>
        <b>map第${
   key}项元素是: ${
   map["${key}"]}</b>
</#list>

使用点语法时和顶层变量一样的限制,但中括号语法没有任何限制。

三、字符串操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值