该篇博客参考了网上一些标签,博文中的标签都自测可用,仅用来作为后边忘记查阅的资料;
1.数据类型
FreeMarker和java不同,FreeMarker不需要定义变量的类型,直接赋值即可。
字符串: value = “xxxx” 。如果有特殊字符 string = r"xxxx" 。单引号和双引号是一样的。
数值:value = 1.2。数值可以直接等于,但是不能用科学计数法。
布尔值:true or false。
List集合:list = [1,2,3] ; list=[1…100] 表示 1 到 100 的集合,反之亦然。
Map集合:map = {“key” : “value” , “key2” : “value2”},key 必须是字符串哦!
实体类:和EL表达式差不多,直接点出来。
2.字符串操作
字符串连接:可以直接嵌套${"hello , KaTeX parse error: Expected 'EOF', got '}' at position 8: {name}"}̲ ; 也可以用加号{"hello , " + name}
字符串截取:string[index]。index 可以是一个值,也可以是形如 0…2 表示下标从0开始,到下标为2结束string[0…2]。一共是三个数。
字符串转date操作:
string?datetime(“yyyy-MM-dd HH-mm:ss”),datetime中是指定格式化后的结果
或string?date(“yyyy-MM-dd HH-mm:ss”),date中是指定格式化后的结果
或string?time(“yyyy-MM-dd HH-mm:ss”),time中是指定格式化后的结果
3.比较运算符
== (等于),!= (不等于),gt(大于),gte(大于或者等于),lt(小于),lte(小于或者等于)。不建议用 >,< 可能会报错!
一般和 if 配合使用
4.freemarker内建函数
FreeMarker 提供了一些内建函数来转换输出,其结构:变量?内建函数,这样就可以通过内建函数来转换输出变量。
html: 对字符串进行HTML编码;
cap_first: 使字符串第一个字母大写;
lower_case: 将字符串转成小写;
upper_case: 将字符串转成大写;
size: 获得集合中元素的个数;
int: 取得数字的整数部分。
?String() 格式化
?string.number 格式化为number
?string.currency 格式化为¥模式,并四舍五入保留两位小数
?string.percent 格式化为百分比模式,并四舍五入保留两位小数
4.变量声明
assign可以为模板页面创建一个顶层变量或者替换顶层变量:
语法:<#assign name =value> 指定一个名为name 值为value的变量;
assign也可以指定多个变量:
语法:<#assign name1=value1 name2 =value2 name3 =value3> 指定多个名为name1 值为value1,名为name2 值为value2 …的变量;
local进行声明局部变量:
语法:
<#local name=value/> 指定一个名为name且值为value的局部变量;
5.变量空判断
! 指定缺失变量的默认值;一般配置变量输出使用
?? 判断左侧的变量是否丢失,相当于java中的null的判断,或者这个变量是否未定义;
?has_content 非常像??,但是它同时也会对空字符串或空list或空map进行判断。
6.集合处理
6.1 list 集合:
如果集合中不是javaBean对象,那么可以用
直
接
取
,
如
果
是
j
a
v
a
B
e
a
n
对
象
,
则
可
以
使
用
{}直接取,如果是javaBean对象,则可以使用
直接取,如果是javaBean对象,则可以使用{list.bean属性};
语法:
<#list listName as list>
${list}
</#list>
6.2Map集合:
6.2.1 直接从map中根据key进行获取value
语法?{map[‘key’]}
6.2.2 通过迭代map的key 然后获取value
语法:
<#list map?keys as key>
${map[key]}
</#list>
6.2.3 直接迭代出map中的value值
语法:
<#list map?value as values>
${values}
</#list>