商城业务-首页-渲染

简介: 商城业务-首页-渲染

/**

* 模板引擎

* 1)thymeleaf-starter 关闭缓存

* 2)静态资源放static按照路径直接访问

* 3)页面放在template下。直接访问

* springboot,项目访问自动访问index.html

* 4)不重启服务器的情况下更新资源

*      1)引入dev-tools

*      2)修改完页面,ctrl shift f9 重新自动编译下页面,代码配重启

*/

pom文件添加依赖  

 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>2.1.8.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <version>2.1.8.RELEASE</version>
        </dependency>

index.html使用thymeleaf内带的标签修改

  <div class="header_main">
      <div class="header_banner">
        <div class="header_main_left">
            <ul>
                <li th:each="category:${categorys}">
                    <a href="#" class="header_main_left_a"  th:attr="ctg-data=${category.catId}"><b th:text="${category.name}">家用电器</b> </a>
                </li>
            </ul>
        </div>

增加Catelog2Vo

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Catelog2Vo {
    private  String catelogId;
    private List<Catelog3Vo> catalog3List;
    private  String id;
    private String name;
    /**
     * 三级分类vo
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public  static  class  Catelog3Vo{
        private  String catalog2Id;
        private  String name;
        private  String id;
    }
}

首页跳转一级分类 

    @GetMapping({"/","index.html"})
    public String indexPage(Model model){
        //todo 1,查出所有的一级分类
       List<CategoryEntity>  categoryEntities= categoryService.getLevel1Categorys();
        model.addAttribute("categorys",categoryEntities);
        return  "index";
    }

获取二三级json数据

    @ResponseBody
    @GetMapping("index/catalog.json")
    public  Map<String, List<Catelog2Vo>> getCatalogJson(){
        Map<String, List<Catelog2Vo>> map= categoryService.getCatalogJson();
        System.out.println(map);
        return map;
    }

一级 分类

List<CategoryEntity> getLevel1Categorys();

    @Override
    public List<CategoryEntity> getLevel1Categorys() {
        QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
        wrapper.eq("parent_cid",0);
        List<CategoryEntity> categoryEntities = baseMapper.selectList(wrapper);
        return categoryEntities;
    }

二三级分类查询

Map<String, List<Catelog2Vo>> getCatalogJson();

  @Override
    public Map<String, List<Catelog2Vo>> getCatalogJson() {
        //1.查出所有一级分类
        List<CategoryEntity> level1Categorys = getLevel1Categorys();
        //2封装数据
        Map<String, List<Catelog2Vo>> parent_cid = level1Categorys.stream().collect(Collectors.toMap(k -> k.getCatId().toString(), v -> {
            //1.每一个的一级分类,查到这个一级分类的二级分类
            List<CategoryEntity> categoryEntities = baseMapper.selectList(new QueryWrapper<CategoryEntity>()
                    .eq("parent_cid", v.getCatId()));
            //2.封装上面的结果
            List<Catelog2Vo> catelog2Vos = null;
            if (categoryEntities != null) {
                catelog2Vos = categoryEntities.stream().map(l2 -> {
                    Catelog2Vo catelog2Vo = new Catelog2Vo(
                            v.getParentCid().toString(), null, v.getName().toString(), v.getCatId().toString()
                    );
                    //找出当前二级分类的三级分类分装成vo
                    List<CategoryEntity> categoryEntities1 = baseMapper.selectList(new QueryWrapper<CategoryEntity>().eq("parent_cid", l2.getCatId()));
                    List<Catelog2Vo.Catelog3Vo> collect=null;
                    if (categoryEntities1!=null){
                        collect = categoryEntities1.stream().map(l3 -> {
                            Catelog2Vo.Catelog3Vo catelog3Vo = new Catelog2Vo.Catelog3Vo(l2.getCatId().toString(), l3.getName(), l3.getCatId().toString());
                            return catelog3Vo;
                        }).collect(Collectors.toList());
                    }
                    catelog2Vo.setCatalog3List(collect);
                    return catelog2Vo;
                }).collect(Collectors.toList());
            }
            return catelog2Vos;
        }));
        return  parent_cid;
    }

最后数据查看json格式部分

"11": [
    {
      "catelogId": "0",
      "catalog3List": [
        {
          "catalog2Id": "82",
          "name": "商务休闲鞋",
          "id": "774"
        },
        {
          "catalog2Id": "82",
          "name": "正装鞋",
          "id": "775"
        },
        {
          "catalog2Id": "82",
          "name": "休闲鞋",
          "id": "776"
        },
        {
          "catalog2Id": "82",
          "name": "凉鞋/沙滩鞋",
          "id": "777"
        },
        {
          "catalog2Id": "82",
          "name": "男靴",
          "id": "778"
        },
        {
          "catalog2Id": "82",
          "name": "功能鞋",
          "id": "779"
        },
        {
          "catalog2Id": "82",
          "name": "拖鞋/人字拖",
          "id": "780"
        },
        {
          "catalog2Id": "82",
          "name": "雨鞋/雨靴",
          "id": "781"
        },
        {
          "catalog2Id": "82",
          "name": "传统布鞋",
          "id": "782"
        },
        {
          "catalog2Id": "82",
          "name": "鞋配件",
          "id": "783"
        },
        {
          "catalog2Id": "82",
          "name": "帆布鞋",
          "id": "784"
        },
        {
          "catalog2Id": "82",
          "name": "增高鞋",
          "id": "785"
        },
        {
          "catalog2Id": "82",
          "name": "工装鞋",
          "id": "786"
        },
        {
          "catalog2Id": "82",
          "name": "定制鞋",
          "id": "787"
        }
      ],
      "id": "鞋靴",
      "name": "11"
    },
    {
      "catelogId": "0",
      "catalog3List": [
        {
          "catalog2Id": "83",
          "name": "高跟鞋",
          "id": "788"
        },
        {
          "catalog2Id": "83",
          "name": "单鞋",
          "id": "789"
        },
        {
          "catalog2Id": "83",
          "name": "休闲鞋",
          "id": "790"
        },
        {
          "catalog2Id": "83",
          "name": "凉鞋",
          "id": "791"
        },
        {
          "catalog2Id": "83",
          "name": "女靴",
          "id": "792"
        },
        {
          "catalog2Id": "83",
          "name": "雪地靴",
          "id": "793"
        },
        {
          "catalog2Id": "83",
          "name": "拖鞋/人字拖",
          "id": "794"
        },
        {
          "catalog2Id": "83",
          "name": "踝靴",
          "id": "795"
        },
        {
          "catalog2Id": "83",
          "name": "筒靴",
          "id": "796"
        },
        {
          "catalog2Id": "83",
          "name": "帆布鞋",
          "id": "797"
        },
        {
          "catalog2Id": "83",
          "name": "雨鞋/雨靴",
          "id": "798"
        },
        {
          "catalog2Id": "83",
          "name": "妈妈鞋",
          "id": "799"
        },
        {
          "catalog2Id": "83",
          "name": "鞋配件",
          "id": "800"
        },
        {
          "catalog2Id": "83",
          "name": "特色鞋",
          "id": "801"
        },
        {
          "catalog2Id": "83",
          "name": "鱼嘴鞋",
          "id": "802"
        },
        {
          "catalog2Id": "83",
          "name": "布鞋/绣花鞋",
          "id": "803"
        },
        {
          "catalog2Id": "83",
          "name": "马丁靴",
          "id": "804"
        },
        {
          "catalog2Id": "83",
          "name": "坡跟鞋",
          "id": "805"
        },
        {
          "catalog2Id": "83",
          "name": "松糕鞋",
          "id": "806"
        },
        {
          "catalog2Id": "83",
          "name": "内增高",
          "id": "807"
        },
        {
          "catalog2Id": "83",
          "name": "防水台",
          "id": "808"
        }
      ],
      "id": "鞋靴",
      "name": "11"
    }
  ],

c65dae97aeaa4e89b486f724b4c422ad.png

相关文章
uniapp项目实践第四章:如何安装uni-ui组件库
uniapp项目实践第四章:如何安装uni-ui组件库
863 0
|
存储 SQL 前端开发
前后端不分离的抽奖系统
前后端不分离的抽奖系统
113 0
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
671 23
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
14天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1096 110