Email Freemarker循环以写入表

Email Freemarker循环以写入表,email,freemarker,Email,Freemarker,这是电子邮件编码。 在我看来似乎很简单,但我已将一组数据分配给freemarker变量 [#assign LOOP_TAB]${list.creative!'000000'}[/#assign] 其中list.creative包含1-5 然后我想将相应数量的简单HTML表写入我的模板 <!--Begin TEXT BOX--> [#list 0..LOOP_TAB?length-1 as i] &

这是电子邮件编码。 在我看来似乎很简单,但我已将一组数据分配给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]

[#列表0..LOOP_选项卡?长度-1为i]

循环表结构。

[/#列表]

这是一种工作方式,但是默认情况下我会得到两个表,当我在2、4或1上测试时,从来没有正确的表数量。让我将
LOOP\u TAB
重命名为
numberOfTabs
。如果这是一个数字,而不是字符串,那么:

[#list 1 ..< numberOfTabs!0 as _]
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    ...
  </table>
[/#list]
[#列表1..
如果
numberOfTabs
是一个字符串,并且您无法修复数据模型,那么请使用
(numberOfTabs?number)!0而不是
numberOfTabs!0

一些进一步的说明:

  • [#分配循环选项卡]${list.creative!000000'}[/#分配]
    可以简单地写成
    [#分配循环选项卡=list.creative!000000']
    。但正如你所看到的,你根本不需要这个
  • ?length
    以字符形式给出字符串的长度,因此,它在
    循环选项卡中返回了字符串的长度
  • from。。to
    给出了一个包含范围,而且
    0-1将给出
    [0,-1]
    ,而不是您想要的空序列。因此,您需要从..<到
    ,它具有独占的结尾
  • 我使用
    \uuu
    作为循环变量,只是为了表示您实际上并没有在任何地方读取它。否则就没什么特别的了

非常感谢您!如果可能的话,我能再向你提出一个问题吗@ddekany