关于thymeleaf 遍历 List<Map<String,Object>> 类型数据
发布日期:2021-05-10 22:23:14 浏览次数:16 分类:精选文章

本文共 1470 字,大约阅读时间需要 4 分钟。

Thymeleaf 游览 List<Map<String, Object>> 类型的数据

技术实现

在本周的项目中,我们需要从 Redis 中的有序集合 (ZSet) 中取出 ‘本周合并每日评论数量排名’ 的数据,并将其映射到一个 List<Map<String, Object>> 中。这种操作可以通过 Redis 客户端工具实现。以下是具体实现步骤:

  • 从 Redis ZSet 中获取数据

    使用 zsetOperations 操作 Redis 的有序集合,获取与 ‘Constant.WEEK_KEY’ 关键词相关的有序元素。这里我们从排名为 0 到 6 的位置获取数据。

    Set
    > typedTupleSet = redisUtil.getZSetRange(Constant.WEEK_KEY, 0, 6);
  • 将 ZSet 元素映射为 Map

    对于每个返回的 TypedTuple,创建一个新的 HashMap<String, Object> 实例,并将 TypedTuple 的值映射到其中。例如:

    Map
    map = new HashMap<>();
    map.put("id", typedTuple.getValue());
  • 增加补充信息

    为了完整展示信息,我们还需要从 Redis 中获取每篇帖子的标题和评论数量。这里,我们采用合并的方式将每天的评论数量转换为整数值。

    String post_key = Constant.RANK_POST + typedTuple.getValue();  
    map.put("title", redisUtil.hget(post_key, Constant.POST_TITLE));
    map.put("commentCount", typedTuple.getScore().intValue());
  • 将数据添加至列表中

    将创建的 Map 对象添加至一个新的 List<Map<String, Object>> 中:

    list.add(map);
  • 绑定数据至视图

    最后,将处理后的列表数据绑定至后续的视图模型中:

    model.addAttribute("listHot", list);

  • 页面展示

    在视图部分,我们需要将上述处理后的 listHot 数据一一展示出来。本节将展示如何在 Thymeleaf 模板中实现这一acter。

    我们的目标是按每日评论数量的排名顺序展示相关信息,带有一些用户友好的界面元素。

    HTML 模板实现
    本周热议
    • [[${listHot['commentCount']}]]

    在这一实现中,我们:

  • 使用 th:each 指令遍历 listHot 列表
  • 构建帖子详情链接
  • 显示每篇帖子的标题和评论数量
  • 使用图标和评论数量进行可视化展示

  • 本文主要介绍了如何利用 Thymeleaf 和 Redis 进行高效的数据处理和展示。操作过程中,我们按照需求从 Redis ZSet 中获取数据,并将符合要求的信息转换为用户友好的展示形式。这种方法确保了数据获取的高效性和接口的灵活性,同时为后续的业务逻辑开发奠定了稳固的基础。

    上一篇:thymeleaf判断对象是否为空的相关逻辑处理
    下一篇:关于thymeleaf模板引擎中th:if的使用

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月19日 19时08分52秒