1

可以使用freemarker循环遍历集合并输出集合中每个项目的属性吗?

此集合属性将是动态的,即不能硬编码,将从数据库生成。

我在找什么:能够指向不同的数据库,并遍历每个表并输出表列。

4

1 回答 1

2

可能,尽管这取决于数据在 Java 领域中的结构。Freemarker 处理集合(散列、序列)的基本操作。如果你在 Java 中有一个 Map,Freemarker 会让你像“哈希”一样使用它(你可以直接获取它的键),而 Java 中的列表看起来像 Freemaker 中的“序列”。

如果你有,比如说,在 Java 中,aList<List<String>>代表一个表列表,那么你可以像这样在 FTL 中遍历它们:

<#-- getMyTables() is a call into the primary template model object -->
<#assign myTables = getMyTables() />
<#list myTables as table>
  <#list table as column>
    ${column}
  </#list> 
</#list>

如果您的集合是未实现 List 或 Map 接口的自定义类,那么您当然可以直接访问它们的方法(Freemarker 支持直接访问其模板模型上的方法以及您可以从模板模型中获取的任何内容)。例如

<#-- getMyTablesAsList() is a call into the primary template model object -->
<#assign myTables = getMyTablesAsList() />
<#list myTables as table>
  <#list table.getColumnNames() as column>
    ${column}
  </#list> 
</#list>
于 2010-01-07T04:37:28.703 回答