<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0
    在我們應用Freemarker過程中,經常會操作例如字符串,數字,集合等,卻不清楚Freemrker有沒有類似于Java一樣有相關的類及方法。在本文當中,我將向大家詳細的介紹Freemarke的內置函數及用法,以便能幫助大家更熟練的應用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”?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 用于將字符串中的<、>、&和“替換為對應得&lt;&gt;&quot:&amp

    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內置函數及用法的介紹,相信您已經對這些函數的有了一定的了解,希望本文能對您的開發有所幫助。由于時間倉促,有不足之處請您批評指正。

    posted on 2009-11-25 11:21 junly 閱讀(1583) 評論(0)  編輯  收藏 所屬分類: freemark/velocity
    主站蜘蛛池模板: 一二三四视频在线观看中文版免费| 一个人看的免费高清视频日本| 久久久久久成人毛片免费看| 国产亚洲自拍一区| xxxxx做受大片视频免费| xvideos亚洲永久网址| 亚洲精品国产av成拍色拍| 毛片免费观看的视频| 国产成人精品日本亚洲网址| 成年黄网站色大免费全看| 亚洲男人的天堂在线| 96免费精品视频在线观看| 亚洲综合在线成人一区| 精品无码免费专区毛片| 亚洲国产综合在线| 久久久久国色AV免费看图片| 中文字幕 亚洲 有码 在线| 免费a级毛片无码a∨蜜芽试看 | 中文字幕亚洲乱码熟女一区二区 | 亚洲色成人WWW永久在线观看| 免免费国产AAAAA片| 亚洲综合校园春色| 国产精品国产自线拍免费软件| 国产成人人综合亚洲欧美丁香花| 免费国产成人高清在线观看麻豆 | 亚洲一区二区女搞男| 久久精品私人影院免费看| 666精品国产精品亚洲| 国产大片线上免费观看| 国产精品高清视亚洲一区二区| 嫩草影院免费观看| 一级特级aaaa毛片免费观看| 亚洲国产精品成人精品无码区在线| 95老司机免费福利| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲片一区二区三区| 午夜精品射精入后重之免费观看 | 精品国产污污免费网站| 亚洲天堂一区在线| 波多野结衣视频在线免费观看| a级成人毛片免费视频高清|