FreeMarker迴圈變數內建函式

2021-10-10 16:35:39 字數 4074 閱讀 1451

這些內建函式只能用於listitems指令 的迴圈變數 (也可以用於已經廢棄的foreach指令)。 下面是一些說明(loopvar?index在可以列表的值中進行迭代,返回從0開始的索引):

<#-- note: x is a loop variable -->

<#list ['a', 'b', 'c'] as x>

$

0

12

list指令不指定迴圈變數時, 這些內建函式就作用於items指令的迴圈變數:

<#list ['a', 'b', 'c']>

<#list ['a', 'b', 'c'] as x>

<#assign y = x>

$ <#-- error: y isn't a loop variable -->

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

返回當前迭代(由迴圈變數名稱識別)從1開始的索引。

<#list ['a', 'b', 'c'] as i>

$: $

1: a

2: b

3: c

note:

要從0開始的索引,請使用index內建函式。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

辨別迴圈項是否是當前迭代(由迴圈變數名稱識別)的最後一項。

<#list ['a', 'b', 'c'] as i>$
true true false
note:

使用逗號等隔開迴圈項,請使用<#sep>separator

來代替<#if var?has_next>separator

,這樣可讀性更強。(此外經常被忽略,比如在<#list... as var>...$...

<#sep>separator

中)

note:

如果需要對該內建函式取反,請使用var?is_last來代替!var?has_next, 因為它的可讀性更強。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

返回當前迭代(由迴圈變數名稱識別)從0開始的索引。

<#list ['a', 'b', 'c'] as i>

$: $

0: a

1: b

2: c

note:

要從1開始的索引,請使用counter內建函式。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

辨別迴圈項是否是當前迭代(由迴圈變數名稱識別)間隔1的奇數項。

<#list ['a', 'b', 'c', 'd'] as i>$
false true false true
note:

要將**進行行間變色等操作,請使用var?item_parityvar?item_cycle(...)來代替。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

辨別迴圈項是否是當前迭代(由迴圈變數名稱識別)的第一項。

<#list ['a', 'b', 'c'] as i>$
true false false
note:

該內建函式從 freemarker 2.3.23 版本開始可用。

辨別迴圈項是否是當前迭代(由迴圈變數名稱識別)的最後一項。

<#list ['a', 'b', 'c'] as i>$
false false true
note:

如果需要對該內建函式取反,請使用var?has_next來代替!var?is_last, 因為它的可讀性更強。

note:

使用逗號等隔開迴圈項,請使用<#sep>separator

來代替<#if var?has_next>separator

,因為它的可讀性更強。(此外經常被忽略,比如在<#list ... as var>...$...

<#sep>separator

中)

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

辨別迴圈項是否是當前迭代(由迴圈變數名稱識別)間隔1的偶數項。

<#list ['a', 'b', 'c', 'd'] as i>$
true false true false
note:

要將**進行行間變色等操作,請使用var?item_parityvar?item_cycle(...)來代替。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

這是item_parity內建函式 更為通用的版本,這裡可以指定何值來代替"odd""even"。 它也允許多餘兩個值來迴圈。

<#list ['a', 'b', 'c', 'd', 'e', 'f', 'g'] as i>

$

abc

defg

一些細節:

note:

如果需要"odd""even",請使用item_parity內建函式 來代替。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

基於當前迭代(由迴圈變數名稱識別)間隔為1的索引的奇偶性, 返回字串值"odd""even"。 這通常用於**中行間的顏色變換:

<#list ['a', 'b', 'c', 'd'] as i>

$

abc

d

note:

請使用item_parity_cap內建函式 來大寫"odd""even"。請使用item_cycle內建函式 來指定自定義值,或多於兩個值。

note:

該內建函式從 freemarker 2.3.23 版本開始可用。

基於當前迭代(由迴圈變數名稱識別)間隔為1的索引的奇偶性, 返回字串值"odd""even"(請注意大寫)。

<#list ['a', 'b', 'c', 'd'] as i>

$

abc

d

note:

請使用item_parity內建函式 來小寫"odd""even"

Freemarker迴圈遍歷

迴圈格式 list 要迴圈的資料 as 迴圈後的資料 迴圈的下標 通過,item index獲取 比如 list studentlist as student 資料集 建立乙個資料集,可以是pojo也可以是map,推薦使用map map data new hashmap liststulist ne...

freemarker中迴圈顯示

有乙個list中20個物件,要求每行顯示4個,顯示5行 list名字叫 userlist,其中包含user物件 if userlist?exists list userlist as thisuser if 0 要顯示的內容 其中知識點 1 list標籤 list sequence as item ...

C C 迴圈內還是迴圈外定義變數更好?

問 方法 a widget w for int i 0 i n i 方法 b for int i 0 i n i effective c 條款 26 有一段話大概是 當乙個賦值成本低於一組構造 析構成本,定義在迴圈外 即a 比較高效,否則定義在迴圈內 即b 比較好。我的問題是 哪些情況 賦值成本低於...