首页 > 解决方案 > spring-boot-starter-freemarker 动态循环示例

问题描述

嗨,任何人都可以帮助我在使用 spring-boot-starter-freemarker 时如何在 ftl 文件中使用循环,如果我传递一个动态数组,我应该能够在表格中打印它,

</table>
</thead>
                <tbody>
                <#list ObjectList as list>
                    <tr>
                        <td>${list.firstname}</td>
                        <td>${list.lastname}</td>
                    </tr>
                </#list>
                </tbody>
            </table>

如果每次我应该用新列更新这个 ftl 文件时字段增加,我在这里专门设置列,请让我知道循环的动态方式,以便我添加多少列

标签: spring-bootfreemarker

解决方案


我会假装你<#list objects as object>在你的例子中,因为这些变量名更容易理解。您可以在 like 对象中列出子变量(like firstName<#list object?values as value><td>${value}</td></#list>,但它会有问题,就像您也会列出对象的类(因为有一个object.getClass()方法),并且您可能会列出不能直接打印的值(就像一个方法,你必须用 过滤掉?is_method)。因此,代表该表 ( objects) 的对象可能应该提供列名列表,然后您可以更好地控制显示的内容:<#list objects.columnNames as columnName><td>${object[columnName]}</td></#list>. 无论如何,您当然也需要从某个地方获取标题名称,因此某种元数据必须来自某个地方。此外,与自定义ObjectWrapper(配置设置)你也可以使用注解来标记你想要的getter,但这是一个更高级的话题。


推荐阅读