一、
Sequence
的内置函数
1. sequence
?first
返回
sequence
的第一个值。
2. sequence
?last
返回
sequence
的最后一个值。
3. sequence
?reverse
将
sequence
的
现有顺序反转,即倒序排序
4. sequence
?size
返回
sequence
的大小
5. sequence
?sort
将
sequence
中的
对象转化为字符串后顺序排序
6. sequence
?sort_by(value)
按
sequence
中
对象的属性
value
进行排序
二、
Hash
的内置函数
1. hash?keys
返回
hash
里的
所有
key
,
返回
结果为
sequence
2.
hash?values
返回
hash
里的
所有
value
,
返回
结果为
sequence
例如:
<#assign user={
“
name
”
:
“
hailang
”
,
“
sex
”
:
“
man
”
}
/
>
<#assign keys=user?keys
/
>
<#list
keys as key
>
${key}=${user[key]}
</#list>
三、
操作字符串函数
1.
substring
(
start,end
)
从一个字符串中截取子串
start:
截取子串
开始的索引
,
start
必须大于等于
0
,小于等于
end
end:
截取子串的长度
,
end
必须大于等于
0
,小于等于字符串长度,如果省略该参数,默认为字符串长度。
例子:
${
‘
str
’
?substring(0)},
结果为
str
${
‘
str
’
?substring(1)},
结果为
tr
${
‘
str
’
?substring(2)},
结果为
r
${
‘
str
’
?substring(3)},
结果为
${
‘
str
’
?substring(0,0)},
结果为
${
‘
str
’
?substring(0,1)},
结果为
s
${
‘
str
’
?substring(0,2)},
结果为
st
${
‘
str
’
?substring(0,3)},
结果为
str
2.cap_first
将字符串中的
第一个单词的首字母变为大写
。
${
‘
str
’
?cap_first},
结果为
Str
3.
uncap_first
将字符串中的第一个单词的首字母变为小写
。
${
‘
Str
’
?cap_first},
结果为
str
4. capitalize
将字符串中的所有单词的首字母变为大写
${
‘
str
’
?capitalize},
结果为
STR
5. date,time,datetime
将字符串转换为日期
例如:
<#assign date1=
”
2009-10-12
”
?date(
“
yyyy-MM-dd
”
)
>
<#assign date2=
”
9:28:20
”
?time(
“
HH:mm:ss
”
)>
<#assign date3=
”
2009-10-12 9:28:20
”
?time(
“
HH:mm:ss
”
)
>
${date1},
结果为
2009-10-12
${date2},
结果为
9:28:20
${date3},
结果为
2009-10-12 9:28:20
注意:
如果指定的字符串格式不正确将引发错误
。
6. ends_with
判断某个字符串是否由某个子串结尾,
返回布尔值
。
${
“
string
”
?ends_with(
“
ing
”
)?string},
返回结果为
true
注意:布尔值必须转换为字符串才能输出
7. html
用于将字符串中的
<
、
>
、
&
和“替换为对应得
<>":&
8. index_of
(
substring,start
)在字符串中查找某个子串,
返回找到子串的第一个字符的索引
,如果没有找到子串,则返回
-1
。
Start
参数用于指定从字符串的
那个索引处开始搜索,
start
为数字值
。
如果
start
大于字符串长度,则
start
取值等于字符串长度,
如果
start
小于
0
, 则
start
取值为
0
。
${
“
string
”
?index_of(
“
in
”
) ,
结果为
3
${
“
string
”
?index_of(
“
ab
”
) ,
结果为
-1
9.length
返回字符串的长度
${
“
string
”
?length},
结果为
6
10. lower_case
将字符串转为小写
${
“
STRING
”
?lower_case},
结果为
string
11. upper_case
将字符串转为大写
${
“
string
”
?upper_case},
结果为
STRING
12. contains
判断字符中是否包含某个子串。
返回布尔值
${
“
string
”
?contains(
“
ing
”
)?string}
,
结果为
true
注意:布尔值必须转换为字符串才能输出
13. number
将字符串转换为数字
${
“
111.11
”
?number},
结果为
111.11
14. replace
用于将字符串中的一部分
从左到右替换为另外的字符串
。
${
“
strabg
”
?replace(
“
ab
”
,
”
in
”
)} ,
结果为
string
15. split
使用指定的
分隔符将一个字符串拆分为一组字符串
<#list
“
This|is|split
”
?split(
“
|
”
) as s>
${s}
</#list>
结果为
:
This
is
split
16.
trim
删除字符串首尾空格
${
“
String
”
?trim} ,
结果为
String
四、操作数字
1. c
用于
将数字转换为字符串
${123?c},
结果为
123
2. string
用于将数字转换为字符串
Freemarker
中预订义了三种数字格式:
number,currency
(货币)和
percent(
百分比
)
其中
number
为默认的数字格式转换
例如:
<#assign tempNum=20>
${tempNum}
${tempNum?string.number}
或
${tempNum?string(
“
number
”
)} ,
结果为
20
${tempNum?string.currency}
或
${tempNum?string(
“
currency
”
)} ,
结果为¥
20.00
${tempNum?string. percent}
或
${tempNum?string(
“
percent
”
)} ,
结果为
2,000%
五、操作布尔值
string
用于将
布尔值转换为字符串输出
,
true
转为“
true
”,
false
转换为“
false
”
foo?string(
“
yes
”
,
”
no
”
),
如果布尔值是
true,
那么返回“
yes
”
,
否则返回
no