【问题标题】:Build Table Dynamically with Thymeleaf使用 Thymeleaf 动态构建表
【发布时间】:2015-06-22 06:21:29
【问题描述】:

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

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

例如

对象 1

  • 名字

  • 出生日期

对象 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>

【问题讨论】:

    标签: thymeleaf


    【解决方案1】:

    概念和背景

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

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


    实施建议

    使用上述方法构建一个bean,以获取传递对象的属性map&lt;String, Object&gt;

    @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>
    

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

    【讨论】:

    • 谢谢,终于有机会测试了。除非您传递一个带有延迟初始化字段的数据的对象,否则效果很好。你知道如何检查字段是否被惰性初始化吗?
    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 2018-01-08
    • 2019-10-28
    • 2014-12-26
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多