电商网站首页商品分类列表功能实现

news/2024/5/9 8:21:47/文章来源:https://blog.csdn.net/weixin_34334744/article/details/85840302

首先我们看下这个功能实现的效果:

后期理解补充:

其实这个功能的关键点就是分析这个模块的数据格式怎么样的?

对于这种商品列表展示的功能:

我们思路如下:

第一:开始展示的都是顶级列表,即parentId为0,即每页父类,他就是最顶级的。

第二:根据数据格式分析各级的区别:顶级与二级的区别,二级与三级的区别(这些区别就是在写代码时候的条件约束)

第三:子列表包含子列表,这里使用递归调用。即将根据本身的id作为父类id传递给函数本身,进行查询子类,即子类的parentId就是这个对象的id。

第四:调用方式:采用jsonP调用还是httpClient调用。

如果是jsonp调用的话,需要在controller层接收callback函数,因为jsonp调用就是js中有这个函数,而在另一个地方需要使用这个函数。

前台页面出现乱码的解决方案:

至于这个MediaType作用是什么,感觉就是解决前台乱码的作用,返回json格式的数据。

 

 

 

这篇博文主要是分析很多大型网站采用这种方式来显示这样的列表的功能。

首先:

首先弄明白,什么样子的才能成为父节点:即含有子节点的节点才为父节点。无子节点的称为叶子节点。

其中最左侧是parentId为0的父节点,我们成为一级节点,全部现在在左侧,这是一个在程序中可以使用List集合类存放。

当点击左侧的每个链接时,会显示右侧的数据,而右侧紫色框框的也是一个二级父节点,当点击每个二级节点时,下面会有几个子节点的url,这时候这些节点没有孩子了,是叶子节点。

这几个列表都是这样的结构。

我们看下这个数据格式在数据库中是如何存储的:

这是所有的一级父节点:

上图是既有父节点也有子节点,每个节点都有唯一的id,但是他们is_parent这个1表示是父节点,0表示是叶子节点。

或许上面的还不够清楚,我们再看下图:

这里用到了分析json数据显示的jsonView工具:

分析这个数据:

 

 

从上面我们可以看到这个数据的格式,每个都有一个url,name,i集合列表。url是点击时的链接,name是代表这个名字,i是它的子列表,然而自列表也是保护u,n,i的格式,但是注意第三层就只要一个叶子节点了。

补充:我们这里需要注意区别:顶级菜单的名称与二级菜单的名称的类型是不一样的,即格式是不一样的。所以这里需要进行区别。

       二级菜单与三级菜单的格式是不一样的。

所以我们这里需要进行分析,从数据库中读取这些内容:

具体分析如下:

 

 

1.传入的参数

首页显示商品列表,无参数请求,但是我们这里是利用了jsop的跨域请求(具体见上一篇博文),即protal客户端,访问rest服务端的数据,所以有个callback的回调。

2.返回值的格式

这里采用的方式可以借鉴下:设立了两个pojo对象来装载这个数据列表:

一个是:

(1)对应的数据格式的pojo类:

public class ItemCat {

     //转换成json数据时使用u作为key,利用springMVC这个注解可以实现名称的转换

     @JsonProperty("u")

     private String url;

     @JsonProperty("n")

     private String name;

     @JsonProperty("i")

     private List<?> item;

}

(2)一个是对应的最后的结果,即父节点为0的刚开始显示的大类目的pojo类:

 

public class ItemCatResult {

 

     private List<?> data;

 

     public List<?> getData() {

 

         return data;

 

     }

 

     public void setData(List<?> data) {

 

         this.data = data;

 

     }

2相当于是1的父亲,是一个大的框架,1是它的孩子列表。

 

这里的返回格式我们需要注意下:

3.service和controller的实现。

这里的controller的实现是利用jsonp的形式,一种新的方式来返回的:

service主要是查询列表,返回上面的两个pojo对象:

这里的service层获取这个列表采用了递归的算法,比循环好用很多。中间加上约束条件:比如叶子节点的不同,一层目录和二层目录的,中二层目录的name没有<a href>的标签。

关于递归的理解,大家可以上网百度下:归根到底就是循环调用函数自身。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732584.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不得不学习的建站神器 LAMP

LAMP 首先我们要了解LAMP到底是什么 Linux Linux 是免费开源软件&#xff0c;这意味着源代码可用的操作系统。 Apache Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。 MySQL MySQL 是多线程、多用户的SQL数据库管理系统 PHP&#xff0c;Perl 或 …

从LiveJournal后台发展看大规模网站性能优化方法

一、LiveJournal发展历程LiveJournal是99年始于校园中的项目&#xff0c;几个人出于爱好做了这样一个应用&#xff0c;以实现以下功能&#xff1a;博客&#xff0c;论坛社会性网络&#xff0c;找到朋友聚合&#xff0c;把朋友的文章聚合在一起LiveJournal采用了大量的开源软件&…

网站备份解决方案实战操作讲解(学生分享)

说明&#xff1a;建议博友先观看&#xff1a;人人都是讲师的教学培训体系介绍http://oldboy.blog.51cto.com/2561410/1111405人人都是讲师-学生分享-网站架构备份解决方案实现讲解&#xff08;陶同学分享讲解&#xff09; 1&#xff09;实战考试题描述 2&#xff09;实战考试逻…

[狂顶]国内免费图片外链网站

2019独角兽企业重金招聘Python工程师标准>>> 图片外链的优点: 减轻自己服务器的带宽,空间,CPU等的压力,提高网站的效率; 专业外链网站的服务器性能很好,至少比一般低价虚机好,稳定; 外链网站一般具有社区分享功能,可以吸引潜在用户浏览您的个人主页,进而浏览您的网…

8月末周国内IT技术类网站排行Top15:CSDN居首

09月05日报道&#xff1a;根据国际统计机构Alexa公布的最新数据显示&#xff0c;8月末周&#xff08;2013-08-26至2013-09-01&#xff09;&#xff0c;国内IT技术类网站排行榜中&#xff0c;CSDN以2360居于榜首&#xff0c;第二位是1460的博客园&#xff0c;第三位是710的51CTO…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

大型网站架构演化简述

2019独角兽企业重金招聘Python工程师标准>>> 前言 一个成熟的大型网站&#xff08;如淘宝、京东等&#xff09;的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务功能的扩展 逐渐演变完善的&…

使用正则表达式,从网站上获取指定数据

2019独角兽企业重金招聘Python工程师标准>>> 最近做的一个项目中&#xff0c;其中有这样一个需求&#xff1a;用户要求我们实时在地图上显示某些指定景点的人数&#xff0c;但是却没有给我们数据的接口。不过可以从网页上获取到最新的数据&#xff0c;每小时更新一次…

IIS搭建本地服务器,花生壳实现外网通过域名访问网站

配置服务器     作为一个青年&#xff0c;没有实力&#xff0c;做不出标图所示的服务器。 作为一个学生&#xff0c;买不起服务器 作为一个小孩&#xff0c;买不起域名 但别忘了 作为一个平民玩家&#xff0c;只要有耐心 装备迟早会做出来的 &#xff08;注&#xff1a;感觉…

api和restful_RESTful API和网站位于同一URL中

api和restful例如&#xff0c;查看Github RESTful API。 要获取有关存储库的信息&#xff0c;您应该向api.github.com/repos/yegor256/rultor发出GET请求。 作为响应&#xff0c;您将获得一个JSON文档&#xff0c;其中yegor256/rultor存储库的所有详细信息。 尝试一下&#xff…

高扩展性网站的原则

高扩展性网站的原则 本文转自被遗忘的博客园博客&#xff0c;原文链接&#xff1a;http://www.cnblogs.com/rollenholt/p/4445248.html&#xff0c;如需转载请自行联系原作者

zabbix web 监控 https网站

2019独角兽企业重金招聘Python工程师标准>>> 由于工作需要&#xff0c;通过WEB监控HTTPS网站&#xff0c;是否能访问。在配置界面上对网站认证&#xff0c;不需要勾选SSL。因为&#xff0c;实际通过curl访问&#xff0c;而CURL访问https网站是通过-k参数访问的&…

万网免费主机wordpress快速建站教程-万网主机申请

很多小伙伴在万网的免费主机申请活动中建立起了自己的个人网站&#xff0c;但还是还有许多小伙伴现在想建站&#xff0c;却发现官网找不到免费主机的申请地址了&#xff0c;以为活动结束了&#xff1f;其实还是可以继续申请免费主机的&#xff0c;接下来小编给大家介绍如何获取…

使用Windows Server 2003搭建一个asp+access网站

鼠标右键->新建->网站->下一步->描述(随便给一个&#xff0c;这里我以test为例) ->下一步->下一步->输入主目录的路径&#xff0c;默认路径下是C:\Inetpub\wwwroot->下一步->下一步->完成 当前已创建好网站&#xff0c;默认是停止状态的(因为默认…

Axure原型绘制篇(一)如何设计一款产品网站

2019独角兽企业重金招聘Python工程师标准>>> 很感谢开源中国这个平台能提供这样一个技术性的场地&#xff0c;供技术爱好者们勇往直前的学习。下面给大家讲述一下作为一个技术人员的转型史&#xff08;工作经验&#xff09;&#xff0c;百转千回最后到了产品&#x…

【转】 普及下网站前端知识【局域网、公网、混合网络】站点监测(上篇)

针对web前端的性能&#xff0c;一时间不知道入手的同学&#xff0c;可以看看&#xff1a;前端性能测试对象&#xff1a;HTML、CSS、JS、AJAX等前端技术开发的Web页面影响用户浏览网页速度的因素&#xff1a;服务端数据返回、网络传输、页面渲染&#xff0c;页面资源结构等前端性…

jekyll静态博客主题_静态网站生成器枪战– JBake vs Jekyll

jekyll静态博客主题今年早些时候&#xff0c;我一直在尝试使用静态网站生成器。 我最终的目标是将这个博客以及其他一些博客转移到静态站点中。 经过一些实验&#xff0c;我的结论是可以预见的。 询问任何一个要使用博客的软件。 大多数人会立即建议WordPress 。 最长的时间&…

通过互动课程网站magic sandbox学习kubernetes:1.1入门magic sandbox及service概念整理

kubernetes互动课程学习 标签&#xff1a;kubernetes 实践 在师兄的介绍下发现了神奇的awesome-kubernetes&#xff0c;里面有着很多的资源&#xff0c;其中之一就是非常有趣的interactive learning environments。其实官方英文教程里面也有一些简单的H5互动模块&#xff0c;…

【程序员节特别推送】搭建一个与技术无关的博客网站(Java后台)

文章目录沉晓s Blog一、博客概述二、需求与功能三、开发介绍四、关于部署五、关于项目本身六、我与CSDN沉晓’s Blog 一、博客概述 ? 项目背景 我一直追求着一种纯粹&#xff0c;写技术博客&#xff0c;就好好地写&#xff0c;心无旁骛。 我目前唯一写作的平台就是CSDN&am…