Freemarker list 的简单使用

本文将介绍在Freemarker中怎样去遍历list和获取list的大小等基本操作。

Freemarker中list可以是java的数组、List、Collection集合。下面将简单的介绍list的遍历:

获取list的size

Java代码:

ArrayList<String> list = new ArrayList<String>();
list.add("Tom");
list.add("Bill");
list.add("Helen");

Freemarker代码:

# 返回 list 的大小为 3
${list?size}

遍历list

Java代码:

public class Animal {
    private String name;
    private float price;
    public Animal(String name, float price) {
        this.name = name;
        this.price = price;
    }
    ... getter/setter ...
}

List<Animal> animals = new ArrayList<Animal>();
animals.add(new Animal("snake", 100));
animals.add(new Animal("bird", 120));
animals.add(new Animal("dragon", 999));

Freemarker代码:

<table>
    <tr>
        <th>名称</th>
        <th>价格</th>
    </tr>
    <#list animals as being>
        <tr>
            <td>${being.name}<td>
            <td>${being.price}</td>
        </tr>
    </#list>
</table>

遍历Map

Java代码:

Map<String,Object> myMap = new HashMap<String,Object>();
myMap.put("title", "Map Featch");
myMap.put("version", "v1.2.0");

Freemarker代码:

<select>
    <#list map?keys as k>
    <option value="${k}"> ${map[k]} </option>
    </#list>
</select>

list遍历中的下标序号

_index 是list的一个属性,例如:

List<String> list = new ArrayList<String>();
list.add("Bill");
list.add("Helen");

Freemarker代码:

<#list list as a>
    <p>${a_index}</p>
</#list>

取list中第i个元素的值

# Java代码
List<String> list = new ArrayList<String>();
list.add("Bill");
list.add("Helen");

# Freemarker代码
${list[i]}

嵌套时前面要有括号,如下,将字符串变成list,然后取第i个元素的值

# Java代码
String str = "Bill,Helen,Tom";

# Freemarker代码
${(str?split(","))[i]}

list的嵌套

<#list jsskList as jsskVO>
    <#list kcList as kcVO>
        <#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)
            ${kcVO.kcm} 
        </#if>
    </#list>
</#list>

list排序

升序 .sort_by()

<#list list?sort_by("字段") as x>
    ${x}
</#list>

降序 .sort_by()?reverse

<#list list?sort_by("字段")?reverse as x> 
    ${x}
</#list>

item_has_next,size使用

<#list userList as user>
    <#if !user_has_next>
        共有${userList?size} 最后一个用户是:${user.userName}
    </#if>
</#list>

参考资料:

https://www.cnblogs.com/qlqwjy/p/7237992.html

点击查看更多 Freemarker 知识……

自知之明是最难得的知识。——西班牙
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号