Spring Boot+Thymeleaf 根据Map中的key进行聚合分类 显示List
Thymeleaf 实现 购物车显示,按商铺分类商品
效果图
数据库数据
后端代码
//购物车列表
@RequestMapping("/getShopingCart")
public String getShopingCart(Model model,String clientid){
List<Map<String, String>> shoppingcart = shopPingCartDao.getShoppingcart(clientid);
Map<String, List<Map<String, String>>> gouwuche = shoppingcart.stream()
.collect(Collectors.groupingBy(e -> e.get("shopid")));//指定聚合分类字段
model.addAttribute("gouwuche",gouwuche);
return "or_gouwuche";
}
前端代码
<div class="content2 center" th:each="goodsMap:${gouwuche}">
<div style="border-bottom:1px solid #ccc; padding-left: 30px">
<input style="align-content: right" type="checkbox" value="quanxuan" class="quanxuan" />
<a href="javascript:;" th:name="${goodsMap.key}" th:class="shop" ></a>
</div>
<div th:each="good:${goodsMap.value}">
<div class="sub_content fl ">
<input type="checkbox" value="quanxuan" class="quanxuan" />
</div>
<div class="sub_content fl"><img th:name="${good.get('goodsno')}" width="60px" height="60px" th:src="@{(${good.get('pic1')})}" ></div>
<div class="sub_content fl ft20" th:text="${good.get('goodsname')}"></div>
<div class="sub_content fl " th:text="${#numbers.formatDecimal(good.get('price'),1,2)}"></div>
<div class="sub_content fl">
<input class="shuliang" type="number" value="1" step="1" min="1" >
</div>
<div class="sub_content fl">2499元</div>
<div class="sub_content fl"><a href="">×</a></div>
<div class="clear"></div>
</div>
</div>
使用th标签取值
Map的key是shopid
value是 该shopid下的商品的List<Map<String, String>>