[Freemarker] freemarker内建函数

郎羽
2023-12-01

内建函数

  • 字符串
    substring,cap_first,ends_with,contains 字符串操作
    date,datetime,time 日期字符串格式化
    starts_with,index_of,last_index_of,split,trim 字符串操作

    <#list "a|b|c|d"?split("|") as item> //分隔字符串
        #{item},
    </#list>
    //输出:a,b,c,d
    ${ "01/03/2017"?date("MM/dd/yyyy") } //输出 2017-01-03
    ${ "15:05:30"?time("HH:mm:ss") } //输出 15:05:30
    ${ "2016-12-31 03:05 PM"?datetime("yyyy-MM-dd hh:mm")} //输出 2016-12-31 03:05:00
    
  • 数字处理函数
    string,x?string(“0.##”)
    round,floor,ceiling

    ${314.5662?string("0.##")} //输出 314.57
    ${314.5662?round } //输出 315
    
  • list处理函数
    first,last,seq_contains,squ_index_of
    size,reverse,sort,sort_by
    chunk分块

    //chunk(4)把listVar1按4个4个分块
    <#assign listVar1=[1,2,3,4 11,12,13,14 21,22,23,24] />
        <li>${listVar1?chunk(4)?size}</li> //输出分块后的list的大小
        <#list listVar1?chunk(4)?last as item?
        <li>${item}</li>
    </#list>
    //以下是输出结果
    3
    21
    22
    23
    24
    
  • 其他內建函数
    is函数:is_string,is_number,is_method
    (),has_content函数
    eval求值

    <#assgin sVar='heelo'/>
    <li>${sVar?is_number?string('yes','no')}</li>
    //正确输出yes,错误输出No
    <li>${sVar?has_content?string('yser','no')}</li>
    <li>${"1"+"2"?eval}</li>
    //输出结果为3,eval执行1+2的意思
    //没有eval为字符串连接,输出结果为12
    
 类似资料: