spring-boot - 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 文件时字段增加,我在这里专门设置列,请让我知道循环的动态方式,以便我添加多少列
解决方案
我会假装你<#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,但这是一个更高级的话题。
推荐阅读
- wordpress - 如何在 wordpress 页面上创建单独的部分
- c# - 为什么第一次 GetAccessControl 函数很慢?
- php - Opencart 3.x 为“主页搜索”和“管理页面”生成 SEO 友好的链接
- typo3 - 如何为 tx-news 中的自定义字段翻译选择框“排序依据”的标签
- java - 即使安装了 java 11,Java Runtime 也只能识别最高 52.0 的类文件版本
- python - 在 mat2py 如何修复错误 AttributeError: 'numpy.ndarray' object has no attribute 'get_svm_type'
- reactjs - 我如何将数据从这里传输到这里
- angular - 渲染列表项时显示无穷大的点
- java - 什么是在对象中只允许一个非空字段的好方法
- jvm - 将 Spring Boot 应用程序部署到 Cloud Foundry 失败并出现 JVM 内存问题