FreeMaker語法大全及示例
阿新 • • 發佈:2019-02-14
... <#noescape>...</#noescape> ... </#escape>
用例
主要使用在相似的字串變數輸出,比如某一個模組的所有字串輸出都必須是html安全的,這個時候就可以使用該表示式 <#escape x as x?html> First name: ${firstName} <#noescape>Last name: ${lastName}</#noescape> Maiden name: ${maidenName} </#escape> 相同表示式 First name: ${firstName?html} Last name: ${lastName } Maiden name: ${maidenName?html}
assign
語法
<#assign name=value> or <#assign name1=value1 name2=value2 ... nameN=valueN> or <#assign same as above... in namespacehash> or <#assign name> capture this </#assign> or <#assign name in namespacehash> capture this </#assign>
用例
生成變數,並且給變數賦值 給seasons賦予序列值 <#assign seasons = ["winter", "spring", "summer", "autumn"]> 給變數test加1 <#assign test = test + 1> 給my namespage 賦予一個變數bgColor,下面可以通過my.bgColor來訪問這個變數 <#import "/mylib.ftl" as my> <#assign bgColor="red" in my> 將一段輸出的文字作為變數儲存在x裡 下面的陰影部分輸出的文字將被賦值給x <#assign x> <#list 1..3 as n> ${n} <@myMacro /> </#list> </#assign> Number of words: ${x?word_list?size} ${x} <#assign x>Hello ${user}!</#assign> error <#assign x=” Hello ${user}!”> true 同時也支援中文賦值,如: <#assign 語法> java </#assign> ${語法} 列印輸出: java
global
語法
<#global name=value> or <#global name1=value1 name2=value2 ... nameN=valueN> or <#global name> capture this </#global>
全域性賦值語法,利用這個語法給變數賦值,那麼這個變數在所有的namespace中是可見的,如果這個變數被當前的assign語法覆蓋 如<#global x=2> <#assign x=1> 在當前頁面裡x=2將被隱藏,或者通過${.global.x}來訪問[A2]
setting
語法
<#setting name=value>
用來設定整個系統的一個環境
locale
number_format
boolean_format
date_format, time_format, datetime_format
time_zone
classic_compatible
用例
假如當前是匈牙利的設定,然後修改成美國
${1.2}
<#setting locale="en_US"> ${1.2}
輸出
1,2
1.2
因為匈牙利是採用“,”作為十進位制的分隔符,美國是用“.”
C一些常用方法或注意事項
表示式轉換類
${expression}計算expression並輸出
#{ expression }數字計算#{ expression ;format}安格式輸出數字format為M和m
M表示小數點後最多的位數,m表示小數點後最少的位數如#{121.2322;m2M2}輸出121.23
數字迴圈
1..5 表示從1到5,原型number..number
對浮點取整數
${123.23?int} 輸出123
給變數預設值
${var?default(“hello world<br>”)?html}如果var is null那麼將會被hello world<br>替代
判斷物件是不是null
<#if mouse?exists>
Mouse found <#else> 也可以直接${mouse?if_exists})輸出布林形
常用格式化日期
openingTime必須是Date型,詳細檢視freemarker文件 Reference->build-in referece->build-in for date ${openingTime?date} ${openingTime?date_time} ${openingTime?time}
新增全域性共享變數資料模型
在程式碼裡的實現 cfg = Configuration.getDefaultConfiguration(); cfg.setSharedVariable("global", "you good"); 頁面實現可以通過global指令,具體檢視指令裡的global部分
直接呼叫java物件的方法
${object.methed(args)}
字串處理(內建方法)
html安全輸出
“abc<table>sdfsf”?html
用例
主要使用在相似的字串變數輸出,比如某一個模組的所有字串輸出都必須是html安全的,這個時候就可以使用該表示式 <#escape x as x?html> First name: ${firstName} <#noescape>Last name: ${lastName}</#noescape> Maiden name: ${maidenName} </#escape> 相同表示式 First name: ${firstName?html} Last name: ${lastName } Maiden name: ${maidenName?html}
assign
語法
<#assign name=value> or <#assign name1=value1 name2=value2 ... nameN=valueN> or <#assign same as above... in namespacehash> or <#assign name> capture this </#assign> or <#assign name in namespacehash> capture this </#assign>
用例
生成變數,並且給變數賦值 給seasons賦予序列值 <#assign seasons = ["winter", "spring", "summer", "autumn"]> 給變數test加1 <#assign test = test + 1> 給my namespage 賦予一個變數bgColor,下面可以通過my.bgColor來訪問這個變數 <#import "/mylib.ftl" as my> <#assign bgColor="red" in my> 將一段輸出的文字作為變數儲存在x裡 下面的陰影部分輸出的文字將被賦值給x <#assign x> <#list 1..3 as n> ${n} <@myMacro /> </#list> </#assign> Number of words: ${x?word_list?size} ${x} <#assign x>Hello ${user}!</#assign> error <#assign x=” Hello ${user}!”> true 同時也支援中文賦值,如: <#assign 語法> java </#assign> ${語法} 列印輸出: java
global
語法
<#global name=value> or <#global name1=value1 name2=value2 ... nameN=valueN> or <#global name> capture this </#global>
全域性賦值語法,利用這個語法給變數賦值,那麼這個變數在所有的namespace中是可見的,如果這個變數被當前的assign語法覆蓋 如<#global x=2> <#assign x=1> 在當前頁面裡x=2將被隱藏,或者通過${.global.x}來訪問[A2]
setting
語法
<#setting name=value>
用來設定整個系統的一個環境
locale
number_format
boolean_format
date_format, time_format, datetime_format
time_zone
classic_compatible
用例
假如當前是匈牙利的設定,然後修改成美國
${1.2}
<#setting locale="en_US"> ${1.2}
輸出
1,2
1.2
因為匈牙利是採用“,”作為十進位制的分隔符,美國是用“.”
C一些常用方法或注意事項
表示式轉換類
${expression}計算expression並輸出
#{ expression }數字計算#{ expression ;format}安格式輸出數字format為M和m
M表示小數點後最多的位數,m表示小數點後最少的位數如#{121.2322;m2M2}輸出121.23
數字迴圈
1..5 表示從1到5,原型number..number
對浮點取整數
${123.23?int} 輸出123
給變數預設值
${var?default(“hello world<br>”)?html}如果var is null那麼將會被hello world<br>替代
判斷物件是不是null
<#if mouse?exists>
Mouse found <#else> 也可以直接${mouse?if_exists})輸出布林形
常用格式化日期
openingTime必須是Date型,詳細檢視freemarker文件 Reference->build-in referece->build-in for date ${openingTime?date} ${openingTime?date_time} ${openingTime?time}
新增全域性共享變數資料模型
在程式碼裡的實現 cfg = Configuration.getDefaultConfiguration(); cfg.setSharedVariable("global", "you good"); 頁面實現可以通過global指令,具體檢視指令裡的global部分
直接呼叫java物件的方法
${object.methed(args)}
字串處理(內建方法)
html安全輸出
“abc<table>sdfsf”?html