一、 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