FreeMarker:两个列表合二为一 table
FreeMarker : two list show in one table
我的问题是这样的:
我有两个列表:
list ups = {up1,up2} list downs = {down1 , down2 , down3}
我需要这样的 table :
ups downs
no name no name
${up1.no} ${up1.name} ${down1.no} ${down1.name}
${up2.no} ${up2.name} ${down2.no} ${down2.name}
${down3.no} ${down3.name}
我的代码如下:
<#list downs as down>
<tr>
<td>ups?</td>
<td>${down.no}</td>
<td>${down.name}</td>
</tr>
</#list>
我假设两个列表的大小可能不同。这让事情有点复杂,但是像这样:
<#assign maxSize = (downs?size < ups?size)?then(ups?size, downs?size)>
<#list 0 ..< maxSize as i>
<td>${(ups[i].no)!}</td>
<td>${(ups[i].name)!}</td>
<td>${(downs[i].no)!}</td>
<td>${(downs[i].name)!}</td>
</#list>
当一个列表中没有更多项目但另一个列表中仍有项目时,需要 (...)!
东西来抑制错误。
(在 2.3.28 中不需要 maxSize
计算,您可以在 2.3.28 中编写 0 ..< [ups?size, downs?size]?max
。)
我的问题是这样的:
我有两个列表:
list ups = {up1,up2} list downs = {down1 , down2 , down3}
我需要这样的 table :
ups downs
no name no name
${up1.no} ${up1.name} ${down1.no} ${down1.name}
${up2.no} ${up2.name} ${down2.no} ${down2.name}
${down3.no} ${down3.name}
我的代码如下:
<#list downs as down>
<tr>
<td>ups?</td>
<td>${down.no}</td>
<td>${down.name}</td>
</tr>
</#list>
我假设两个列表的大小可能不同。这让事情有点复杂,但是像这样:
<#assign maxSize = (downs?size < ups?size)?then(ups?size, downs?size)>
<#list 0 ..< maxSize as i>
<td>${(ups[i].no)!}</td>
<td>${(ups[i].name)!}</td>
<td>${(downs[i].no)!}</td>
<td>${(downs[i].name)!}</td>
</#list>
当一个列表中没有更多项目但另一个列表中仍有项目时,需要 (...)!
东西来抑制错误。
(在 2.3.28 中不需要 maxSize
计算,您可以在 2.3.28 中编写 0 ..< [ups?size, downs?size]?max
。)