这是用于电子邮件编码。我的脑海里似乎很简单,但是我已经为freemarker变量分配了一组数据
[#assign LOOP_TAB]${list.creative!'000000'}[/#assign]
list.creative包含1-5的地方
然后我想将相应数量的简单HTML表写入我的模板中
<!--Begin TEXT BOX-->
[#list 0..LOOP_TAB?length-1 as i]
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td align="left" valign="top" style="font-size: 14px; font-family: Arial, Helvetica, sans-serif; line-height: 20px; color: #000000;"><br>Loop Table Structure.<br><br></td>
</tr>
</tbody>
</table>[/#list]
它的工作原理,但是默认情况下我会得到两个表,并且当我在2或4或1上进行测试时,永远不会显示正确数量的表
让我将LOOP_TAB
重命名为numberOfTabs
。因此,如果那是数字而不是字符串,则:
[#list 0 ..< numberOfTabs!0 as _]
<table width="100%" border="0" cellspacing="0" cellpadding="0">
...
</table>
[/#list]
如果numberOfTabs
是字符串,并且您无法修复数据模型,请使用(numberOfTabs?number)!0
而不是numberOfTabs!0
。
一些其他说明:
[#assign LOOP_TAB]${list.creative!'000000'}[/#assign]
可以简单地写为[#assign LOOP_TAB = list.creative!'000000']
。但正如您所看到的,您根本不需要此。?length
以字符为单位给出字符串的长度,因此,它已返回LOOP_TABS
中的字符串的长度。from .. to
给出了一个包含范围,此外,0 .. -1
给出了[0, -1]
,而不是您想要的空序列。因此,您需要from ..< to
,它具有排他性的结尾。_
作为循环变量只是表示您实际上并没有在任何地方读取它。否则不特殊。