Thymeleaf框架遍历集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thymeleaf框架遍历集合相关的知识,希望对你有一定的参考价值。

参考技术A         Map user= new HashMap(); 

        user.put("name", "张三"); 

        user.put("age", "22"); 

        user.put("sex", "男");

        user.put("birthday", "1995-03-31"); 

        user.put("phonenumber", "12345666666"); 

        map.addAttribute("userhead", user); //Map

        List userinfo =new ArrayList(); 

        userinfo.add("周美玲"); 

        userinfo.add("32"); 

        userinfo.add("女"); 

        userinfo.add("1985"); 

        userinfo.add("19850014665"); 

        map.addAttribute("userinfo", userinfo); //List

        List outerList=new ArrayList<>(); 

        Map innerMap=new HashMap<>(); 

        for (int i = 0; i < 10; i++)  

            innerMap.put("1", i); 

            innerMap.put("1", i++); 

            i++; 

            outerList.add(innerMap); 

         

        map.addAttribute("listmap", outerList); 

遍历Map 和 List

    <thead>

            <th th:each="userhead : $userhead" th:text="$userhead.key"></th> 

            <th th:each="userhead : $userhead" th:text="$userhead.value"></th> 

        </thead> 

        <tbody > 

            <td th:each="userinfo:$userinfo" th:text="$userinfo"></td> 

        </tbody> 

遍历List<Map>

    <ul th:each="lm : $listmap">

        <li th:each="entry : $lm" th:text="$entry.key" ></li> 

        <li th:each="entry : $lm" th:text="$entry.value"></li> 

    </ul>

如何在 Thymeleaf 中循环遍历 Map

【中文标题】如何在 Thymeleaf 中循环遍历 Map【英文标题】:How to loop through Map in Thymeleaf 【发布时间】:2014-06-02 09:17:14 【问题描述】:

我正在尝试了解如何遍历 Thymeleaf 中 Map 中的所有条目。我有一个由 Thymeleaf 处理的域对象,其中包含一个 Map。

如何遍历键并获取值?

谢谢。

【问题讨论】:

【参考方案1】:

如果您有一个 List 作为值。例如,当您有一个地图,其中键是类别,值是与该类别相关的项目列表,您可以使用:

<table>
    <tr th:each="element : $catsAndItems">
        <td th:text="$element.key">keyvalue</td>
        <table>
            <tr th:each="anews : $element.value">
                <td th:text="$anews.title">Some name</td>
                <td th:text="$anews.description">Some name</td>
                <td th:text="$anews.url">Some name</td>
                <td th:text="$anews.logo">Some name</td>
                <td th:text="$anews.collectionDate">Some name</td>
            </tr>
        </table>
    </tr>
</table>

【讨论】:

【参考方案2】:

没关系...我找到了...

<tr th:each="instance : $analysis.instanceMap">
    <td th:text="$instance.key">keyvalue</td>
    <td th:text="$instance.value.numOfData">num</td>
</tr>

谢谢。

【讨论】:

这是什么来源? "When iterating maps, iter variables will be of class java.util.Map.Entry." 出于好奇,有没有办法对 Java 8 或 9 下的任何对象执行此操作?就像迭代 JavaScript 和 JSON 中的对象一样,我认为有一种方法可以获取 Foo 类型的可序列化对象并执行 如果无法做到这一点,能否成为 Java 10 的一部分或下一个主要版本百里香叶?这将解决很多令人头疼的问题,并在通过模板引擎运行实体对象之前减少大量的性能开销。

以上是关于Thymeleaf框架遍历集合的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot——Thymeleaf中使用th:each遍历数组ListMap

SpringBoot——Thymeleaf中使用th:each遍历数组ListMap

spring boot 与 thymeleaf : 设置属性条件遍历局部变量优先级内联语法

thymeleaf-标签th:with

如何在 Thymeleaf 中循环遍历 Map

thymeleaf怎么遍历数组