Freemarker中如何遍歷List

2021-08-03 15:02:36 字數 2694 閱讀 1680

freemarker中如何遍歷list

在freemarker應用中經常會遍歷list獲取需要的資料,並對需要的資料進行排序加工後呈現給使用者。那麼在freemarker中如何遍歷list,並對list中資料進行適當的排序呢?

一、freemarker中list指令簡單介紹

要想在freemarker中遍歷list,必須通過使用list指令,即<#list sequence as item>…

sequence是集合(collection)的表示式,item是迴圈變數的名字,不能是表示式。

當在遍歷sequence時,會將遍歷變數的值儲存到item中。

舉個例子說明吧:

<#list userlist as user>

…userlist中封裝了很多個user物件,我們在遍歷userlist時候,會將遍歷的user物件的值,儲存到上述的user變數中。那麼在取值時,我們可以通過$來獲取user物件的username屬性值。

list指令還隱含了兩個迴圈變數:

item_index:當前迭代項在所有迭代項中的位置,是數字值。

item_has_next:用於判斷當前迭代項是否是所有迭代項中的最後一項。

注意:在使用上述兩個迴圈變數時,一定要將item換成你自己定義的迴圈變數名,item其實就是字首罷了。

例如,如果你使用<# list list asl>..定義,那麼就要使用l_index,l_has_next。

在迴圈過程中,如果您想跳出迴圈,那麼可以使用結合break指令,即<#break>來完成。

二、freemarker中對list進行排序

通常我們的排序操作都是通過dao層來實現的,如果我們想隨時更改我們的排序,那麼就必須修改我們的dao層**,確實不方便。但freemarker為我們提供了這樣的排序方法,解決了這個問題。

1. sort公升序排序函式

sort對序列(sequence)進行排序,要求序列中的變數必須是:字串(按首字母排序),數字,日期值。

<#list list?sort asl>…

2. sort_by函式

sort_by有乙個引數,該引數用於指定想要排序的子變數,排序是按照變數對應的值進行排序,如:

<#list userlist?sort_by(「age」) asuser>…

age是user物件的屬性,排序是按age的值進行的。

3. reverse降序排序函式

<#list list?reverse asl>…。reverse使用同sort相同。reverse還可以同sort_by一起使用

如:想讓使用者按年齡降序排序,那麼可以這個樣寫<#listuserlist?sort_by(「age」)?reverse asuser>…

三、freemarker如何遍歷list例項應用

創通過上面的介紹,相信您已經對freemarker如何遍歷list有了了解,那麼我們就廢話少說,開始做乙個應用吧。

user類

public class user

user.ftl

<#--freemarker遍歷list-->

簡單遍歷list:

<#list userlist as user>

使用者名稱:$

密 碼:$

年 齡: $

<#--freemarker遍歷list並應用list隱含變數item_index-->

item_index使用:

<#list userlist as user>

第$個使用者

使用者名稱:$

密 碼:$

年 齡: $

<#--freemarker遍歷list並應用list隱含變數item_has_next-->

item_has_next,size使用:

<#list userlist as user>

使用者名稱:$

密 碼:$

年 齡: $

<#if!user_has_next>

共有$最後乙個使用者是:$

<#--freemarker遍歷list並按使用者年齡公升序排序-->

按使用者年齡公升序排序:

<#list userlist?sort_by("age") asuser>

使用者名稱:$

密 碼:$

年 齡: $

<#--freemarker遍歷list並按使用者年齡降序排序-->

按使用者年齡降序排序:

<#list userlist?sort_by("age")?reverse asuser>

使用者名稱:$

密 碼:$

年 齡: $

<#--freemarker遍歷list當使用者年齡大於21歲時,停止輸出-->

list中應用break:

<#list userlist?sort_by("age")?reverse asuser>

使用者名稱:$

密 碼:$

年 齡: $

<#if (user.age>21)>

<#break>

clienttest類

public class clienttest

public static void main(string args)

}

Freemarker中如何遍歷List

freemarker中list指令簡單介紹 要想在freemarker中遍歷list,必須通過使用list指令,即 list sequence as item sequence是集合 collection 的表示式,item是迴圈變數的名字,不能是表示式。當在遍歷sequence時,會將遍歷變數的值...

Freemarker迴圈遍歷

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

Freemarker 遍歷Map資料

資料模型 freemarker controller public class freemarkercontroller 遍歷資料模型中的stumap map資料 第一種方法 在中括號中填寫map的key,第二種方法 在map後邊直接加 點key 姓名 年齡 輸出stu1的學生資訊 姓名 年齡 遍歷...