1. 程式人生 > >常用Freemark語法(二)

常用Freemark語法(二)

配置

<#-- Use UTF-8 charset for URL escaping from now: -->
<#setting url_escaping_charset="UTF-8">

賦值

<#assign seq = ["foo", "bar", "baz"]>
<#assign  n= 1>
<#assign x++>
<#assign x="Hello ${user}!">

bool值

<#-- 輸出 true: -->
${foo?c}

<#assign foo = true>
<#-- 輸出 Y: -->
${foo?then('Y', 'N')}

<#assign foo = false>
<#-- 輸出 N: -->
${foo?then('Y', 'N')}

<#assign x = 10>
<#assign y = 20>
<#-- 輸出x、y中較大的: -->
${(x > y)?then(x, y)}

數字型別

<#assign a = 2378492>
${a} -- 2,378,492
${a?c} -- 2378492

<#assign a =2.79>
?floor=${a?floor}  -- 2
?ceiling=${a?ceiling}  -- 3
?round=${a?round} -- 3

?round=${a?is_nan} -- false
?round=${a?is_infinite} -- false

字串處理

${string?html} html encode處理
${string?length} 字串長度
${string?replace(a,b)} 替換a為b
${string?js_string} 轉義' " 
${string?url} 進行url轉義處理
${string?url_path} 進行url轉義處理,但是不轉義 /
...

雜湊表處理

<#assign h = {"name":"mouse", "price":50}>
<#assign keys = h?keys>
<#list keys as key>${key} = ${h[key]}; </#list>

邏輯與比較運算

邏輯運算:|| && !

比較運算 == != > < >= <= gt lt gte lte (g: greater、t: than、e: equal、l: less) FreeMarker進行的是精確的比較,= 或 != 兩邊的表示式的結果都必須是標量,而且兩個標量都必須是相同型別

實際邏輯:
a > 0  && c < 0  ||  d <=  0 && b >=0
為避免Freemark對 > < 解釋為標籤可作如下替換
a gt 0 && c lt 0 ||  d lte 0 && b gte 0