使用Thymeleaf动态构建表

时间:2015-06-22 06:21:29

标签: thymeleaf

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

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

e.g。

对象1

  • 名字

  • 姓氏

  • DOB

对象2

  • 城市

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

对象1表:

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

对象2表:

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

1 个答案:

答案 0 :(得分:2)

概念和背景

这篇文章将让您了解如何获取类的属性并使用org.apache.commons.beanutils.PropertyUtils获取这些属性的值

https://stackoverflow.com/a/13960004/1251350

<小时/> 实施建议

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

@Service("objService")
class ObjectService {
    public Map<String, Object> convertToArray(Object object){
         // the logic to be taken from 
         // https://stackoverflow.com/a/13960004/1251350
    }
}

然后在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>

我没有努力为你编写代码,因为我相信你可以在这个指导下自己动手。干杯!