JAVA中ftl如何解决list

JAVA中ftl如何解决list

作者:Joshua Lee发布时间:2026-02-27阅读时长:0 分钟阅读次数:8

用户关注问题

Q
如何在FreeMarker模板中遍历Java的List集合?

我在使用FreeMarker模板引擎处理Java中的List数据时,不知道如何正确遍历显示列表中的每个元素,应该怎么做?

A

使用<#list>标签遍历Java List

在FreeMarker模板中,可以使用<#list>标签来遍历传入的Java List集合。举例来说,如果在Java中传入了一个名为userList的List对象,在ftl模板中可以写作:

<#list userList as user>
${user}
</#list>

这样就能依次访问list中的每个元素。

Q
如何判断FreeMarker模板中的List是否为空?

在模板显示List数据之前,我想先判断一下这个List是不是为空或者null,避免模板报错,应该怎么办?

A

利用FreeMarker的?exists和?is_empty检查List

可以使用FreeMarker提供的内置操作符来判断List的状态,例如:

<#if userList?exists && !userList?is_empty>
// list非空,进行遍历展示
<#else>
没有数据可显示
</#if>

通过?exists判断变量是否存在,?is_empty判断是否为空,避免空指针异常。

Q
在FreeMarker中如何访问List中对象的属性?

如果Java传入的List中是复杂对象,比如User对象,怎样在ftl模板中获取每个User的属性,比如name和age?

A

通过点号访问List中对象的属性

当List中存放的是对象时,在模板遍历时可以通过类似user.name,user.age这样的方式访问属性。例如:

<#list userList as user>
名字:${user.name}, 年龄:${user.age}
</#list>

保证Java对象有对应的getter方法或公开字段,FreeMarker才能正确访问。