使用 Thymeleaf 动态构建 Table

Build Table Dynamically with Thymeleaf

是否可以使用 Thymeleaf 动态构建 table?

基本上我希望实现的是传递任何对象的能力,table 将显示代表对象中字段数的列数。

例如

对象 1

对象 2

当传递给同一个 thymleaf table 时,它会产生不同的结果:

对象 1 Table:

<tr>
<td>First Name</td>
<td>Last Name</td>
<td>DOB</td>
</tr>

对象 2 Table:

<tr>
<td>Number</td>
<td>Code</td>
<td>Street</td>
<td>City</td>
</tr>

概念和背景

这篇 post 将让您了解如何获取 class 的属性并使用 org.apache.commons.beanutils.PropertyUtils

获取这些属性的值


实施建议

使用上述方法构建一个 bean,以获取传递对象的 map<String, Object> 属性。

@Service("objService")
class ObjectService {
    public Map<String, Object> convertToArray(Object object){
         // the logic to be taken from 
         // 
    }
}

然后在 thymeleaf 模板中获取作为 fragment argument 传递的对象并迭代映射 http://forum.thymeleaf.org/How-to-iterate-HashMap-td3621264.html

<div th:fragment="objDisplay(obj)">
    <div th:each="entry : @objService.convertToArray(obj)">
        <!-- Thymeleaf template to display Map -->
        <!-- http://forum.thymeleaf.org/How-to-iterate-HashMap-td3621264.html -->
    </div>
</div>

我没有费力为您编写代码,因为我相信您可以根据本指南自行完成。干杯!