Freemarker定义了很多内置函数,用户也可以自定义函数,函数的调用使用?
substring:截取子字符串的函数,类似Java的String.substring字符串函数
$(“abcdef”?substring(n) } 截取字符串n位置开始到结尾,n大于等于0,小于等于字符串的长度
$(“abcdef”?substring(m,n) } 截取字符串m位置开始到n位置,m,n大于等于0,小于等于字符串的长度
cap_first: 一行文本的首字母大写
${“hello world ,I am java programer”?cap_first }
uncap_first: 一行文本的首字母小写
${“Hello world ,I am java programer”?uncap_first }
capitalize:每个单词首字母小写改大写,大写改小写
${“hello world ,I am java programer”?capitalize}
ends_with:判断字符串使用以某字符串结尾
${“hello world ,I am java programer”?ends_with(“programer”)?c}
starts_with:判断字符串使用以某字符串开头
${“hello world ,I am java programer”?starts_with(“hello”)?c}
index_of:返回某字符串第一次出现的位置
${“hello world ,I am java programer”?index_of(“am”)}
last_index_of:返回某字符串最后一次出现的位置
${“hello world ,I am java programer”?last_index_of(“am”)}
length:返回字符串的长度
${“hello world ,I am java programer”?length}
left_pad:左侧补齐空格或指定的字符
${“hello world ,I am java programer”?left_pad(10)}
如果left_pad(n) n小于字符串的长度,返回全部字符串
如果left_pad(n) n大于字符串的长度,左侧补充空格或指定字符串
${“hello world ,I am java programer”?left_pad(60,"*")}
right_pad:右侧补齐空格或指定的字符
${“hello world ,I am java programer”?right_pad(100,"*")}
如果right_pad(n) n小于字符串的长度,返回全部字符串
如果right_pad(n) n大于字符串的长度,右侧补充空格或指定字符串
contains:判断字符串中是否存在某字符串
${“hello world ,I am java programer”?contains(“am”)?c}
replace:替换字符串
${“hello world ,I am java programer”?replace(“I”,“you”)}
split:分隔字符串为数组
c : 将数字或boolean 转化为字符串
${1234?c} ${true?c}
string : 将数字转化为字符串
${123?string}
round: 四舍五入
${123.6?round}
${35.3?round}
floor:向下取整
${123.6?floor}
${35.3?floor}
ceiling:向上取整
${123.6?ceiling}
${35.3?ceiling}
string(“yyyy-MM-dd”) :格式化日期
${.now?string(“yyyy-MM-dd HH:mm:ss”)}
date:获取当前日期
${.now?date}
time:获取当前时间
${.now?time}
datetime:获取当前日期时间
${.now?datetime}
转化boolean类型为字符串
${true?c}
${false?string(“no”,“yes”)}
first:返回序列中第一个元素
last:返回序列中最后一个元素
seq_contains(n):判断序列中是否存在元素n
seq_index_of(n):返回n在序列中的位置
seq_last_index_of(n):返回n在序列中最后一个位置
reverse:返回序列的反序集合
sort:序列中元素排序
sort_by:用于hash表的排序,可以指明根据那个字段排序
chunk:把序列分成几个序列,可以指定填充元素