在FreeMarker中对表列使用多个序列的最佳方法

问题描述 投票:0回答:1

我有两个单独的数据列表(集合),我想用来创建表

ColumnA      ColumnB
Value1       Value1
Value2       Value2
Value3       Value3
Value4       Value4
             Value5
             Value6

我知道我可以通过POJO做到这一点,其中我的集合将是POJO(例如a和b)字段,我可以在模板中调用它们,如:

<table>
<tr>
<th>ColumnA</th>
<th>ColumnB</th>
</tr>
<tr>
<#list object as c>
<td>${c.a}</td>
<td>${c.b}</td>
</#list>
</tr>
</table>

但是我想使用单独的集合并分别填充ColumnA和ColumnsB

请您提供建议的最佳方法吗?

例如:

data.put(“ set1”,SET1)

data.put(“ set2”,SET2)

模板:

<table>
<tr>
<th>ColumnA</th>
<th>ColumnB</th>
</tr>
<#list set1 as c>
<tr><td>${c}</td></tr>
</#list>
<#list set2 as d>
<tr><td>${d}</td></tr>
</#list>
</table>

因此它将合并ColumnA的两个集合

java html layout freemarker
1个回答
0
投票

请参见https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_var_sequence

从序列中检索数据

这与散列相同,但是您只能使用方括号语法,并且括号中的表达式必须计算为数字,而不是字符串。例如,获取示例数据模型的第一个动物的名称(请记住,第一个动物的编号是0,而不是1):animals[0].name

和内置size的序列:https://freemarker.apache.org/docs/ref_builtins_sequence.html#ref_builtin_size

大小

顺序中子变量的数量(作为数值)。假定序列中至少有一个子变量,则序列s中的最高可能索引为s?size - 1(因为第一个子变量的索引为0)。

如果要查找最大尺寸,请使用https://freemarker.apache.org/docs/ref_builtins_sequence.html#ref_builtin_min_max

这使您可以执行以下操作:

<#list 0..<[sequenceA?size, sequenceB?size]?max as i>
  <tr>
  <td>${sequenceA[i]!""}</td>
  <td>${sequenceB[i]!""}</td>
  </tr>
</#list>

另请参见:

© www.soinside.com 2019 - 2024. All rights reserved.