Freemarker 内置函数 数字、字符串、日期格式化用法介绍
在用FreeMarker過程中,感覺FreeMarker的字符串,日期,集合等處理能力還是很強大的,上網搜了一些資料,整理如下,以便能幫助大家更熟練的應用Freemarker完成項目開發。
一、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進行排序
?
注意:Sequence不能為null。以上方法在我的另一篇博客Freemarker中如何遍歷List有詳細的應用,感興趣的朋友可以參考。
二、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”?datetime(“HH:mm:ss”)>
<#assign date3=” 2009-10-12 9:28:20”?datetime(“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
通過上面對開發中常用的Freemarker內置函數及用法的介紹,相信您已經對這些函數的有了一定的了解,希望本文能對您的開發有所幫助。由于時間倉促,有不足之處請您批評指正。
轉載于:https://www.cnblogs.com/w1217/p/5972059.html
總結
以上是生活随笔為你收集整理的Freemarker 内置函数 数字、字符串、日期格式化用法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python之列表、字典、集合
- 下一篇: Android MagicIndicat