日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

freemarker 教程

發布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 freemarker 教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

freemarker

前言

FreeMarker 是一款模板引擎:即一種基于模板、用來生成輸出文本(任何來自于 HTML格式的文本用來自動生成源代碼)的通用工具。
FreeMarker 實際上是被設計用來生成 HTML 頁面,尤其是通過實現了基于 MVC(Model View Controller, 模型-視圖-控制器)模式的 Java Servlet 應用程序。

freemarker的常用指令

模板+數據模型(java)=輸出

  • 插值
    ${variableName}
    ${obj.attr}

  • 邏輯運算符,邏輯運算符只能用于布爾值。
    &&:邏輯與;||:邏輯或; !:邏輯非

  • 內建函數
    FreeMarker提供了一些內建函數來轉換輸出,可以在任何變量后緊跟?,?后緊跟內建函數,就可以通過內建函數來轉換輸出變量。

  • 字符串相關常用的內建函數
    html:對字符串進行HTML編碼;
    cap_first:使字符串第一個字母大寫;
    lower_case:將字符串轉成小寫;
    upper_case:將字符串轉成大寫;

  • 集合相關常用的內建函數

    size:獲得集合中元素的個數;

  • 數字值相關常用的內建函數

    int:取得數字的整數部分。

  • 模板開發語句

    • if使用指令(常用必會)

      <#if x == 1> x is 1 </#if> //else if ; else 用法<#assign age=23> <#if (age>60)>老年人 <#elseif (age>40)>中年人 <#elseif (age>20)>青年人 <#else> 少年人

    </#if>

    * switch使用指令(常用必會)

    <#switch x>
    <#case 1>
    1
    <#break>
    <#case 2>
    2
    <#break>
    <#default>
    0
    <#break>
    </#switch>

    * list循環格式(常用必會)

    <#list students as s>

    ${s.no}
    ${s.name}
    ${s.sex}

    </#list>

    * assign指令使用示例,定義模板變量,可以使用模板變量(常用必會) <#-- 直接定義 -->

    <#assign x="Hello ${user}!">
    <#-- 定義 -->
    <#assign x>
    <#list ["星期一", "星期二", "星期三", "星期四", "星期五"] as n>
    ${n}
    </#list>
    </#assign>
    ${x}

    * 集合以及對象都可以做疊加(常用必會) <#list ["星期一","星期二","星期三"] + ["星期四","星期五"] as x>

    ${x}
    </#list>
    <#assign scores = {"語文":86,"數學":78} + {"數學":87,"Java":93}>

    * import指令 (常用必會) 該指令用于導入FreeMarker模板中的所有變量,并將該變量放置在指定的Map對象中,import指令的語法格式如下: `<#import "/lib/common.ftl" as com> ` 上面的代碼將導入`/lib/common.ftl`模板文件中的所有變量,交將這些變量放置在一個名為`com`的Map對象中. * include語法(常用必會) 可以包含頁面:`<#include filename [options]> `,在上面的語法格式中,兩個參數的解釋如下: 1.filename:該參數指定被包含的模板文件 ; 2.options:該參數可以省略,指定包含時的選項,包含encoding和parse兩個選項,其中encoding指定包含頁面時所用的解碼集,而parse指定被包含文件是否作為FTL文件來解析,如果省略了parse選項值,則該選項默認是true. * noparse指令 noparse指令指定FreeMarker不處理該指定里包含的內容,該指令的語法格式如下:

    <#noparse>
    <#list books as book>
    ${book.name}作者:${book.author}
    </#list>
    </#noparse>
    輸出如下:
    <#list books as book>
    ${book.name}作者:${book.author}
    </#list>

    * escape , noescape指令 escape指令導致body區的插值都會被自動加上escape表達式,但不會影響字符串內的插值,只會影響到body內出現的插值,使用escape指令的語法格式如下:

    <#escape identifier as expression>...
    <#noescape>...</#noescape>
    </#escape>
    //看如下的代碼:
    <#escape x as x?html>
    First name:${firstName}
    Last name:${lastName}
    Maiden name:${maidenName}
    </#escape>
    //上面的代碼等同于:
    First name:${firstName?html}
    Last name:${lastName?html}
    Maiden name:${maidenName?html}

    * setting指令 該指令用于設置FreeMarker的運行環境,該指令的語法格式如下:`<#setting name=value>`,在這個格式中,name的取值范圍包含如下幾個: locale:該選項指定該模板所用的國家/語言選項 number_format:指定格式化輸出數字的格式 boolean_format:指定兩個布爾值的語法格式,默認值是true,false date_format,time_format,datetime_format:指定格式化輸出日期的格式 time_zone:設置格式化輸出日期時所使用的時區 * * 注釋部分` <#-- 注釋部分 -->`

    from:https://www.kancloud.cn/eagles/codingrules/316622?

    總結

    以上是生活随笔為你收集整理的freemarker 教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。