写入表的Freemarker循环

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

这是用于电子邮件编码。我的脑海里似乎很简单,但是我已经为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上进行测试时,永远不会显示正确数量的表

email freemarker
1个回答
0
投票

让我将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,它具有排他性的结尾。
  • 我使用_作为循环变量只是表示您实际上并没有在任何地方读取它。否则不特殊。
© www.soinside.com 2019 - 2024. All rights reserved.