1.创建jt项目
聚合工程项目打包方式。
聚合工程的目录结构说明,注意事项。
父类实现序列化,子类不需要实现序列化接口。
阿里数据源说明,配置项目启动项,避免404问题。
2.京淘后台业务说明
默认访问路径
EasyUI介绍
3.京淘后台商品业务实现(查询)
resful通用页面跳转说明
EasyUI中表格数据展现形式,参数要求,说明:使用别人的框架,就必须要满足别人的请求。
json串说明。
商品查询列表具体实现.
前端页面具体分析.
普通方式实现查询分页。
mp方式实现分页(添加配置类)。
商品分类查询信息回显说明。
价格缩小100倍回显,状态码回显,叶子类目回显。
一般数据库中的tinyint(1)类型用Boolean来接收,数据库会进行转换,注意是包装类型。
叶子类目的ajax嵌套问题。
通用的js文件引入。
4.端口号占用问题。
1.什么是聚合工程 一个大型项目中包含了多个小型项目. 通过打包方式进行定义!!
2.常见打包方式: 1.jar包 2.war包 3.pom包(聚合工程)
3.京淘项目创建说明
父级项目jt 打包类型:pom
工具API项目 jt-common 打包类型:jar包
业务项目 jt-manage 打包类型:jar/war包.
1.2.1 创建项目
注意:分布式父级项目一般用Maven形式,springboot的方式创建(即用插件的方式)一般创建的是里面的子系统。
父级工程不写java代码不会识别,它最小的单位是jar,主要是起jar包的管理作用。所以说只需要编辑pom文件即可,不用写java代码,也不用编辑配置文件,主启动类。
1.2.2 编辑POM.xml文件
注意:1.需要在pom文件标识此项目为父级工程项目。2.不需要引入build标签。
1.3.1 创建项目
1.3.2 添加工具API
课前资料的src直接复制过来,原先的直接右键delete.
里面是2个pojo类。
1.3.2.1 BasePojo
注意只要是父级实现了序列化接口,子集继承也实现了序列化接口,子类不需要在实现Serializable。
1.3.2.2 Item
1.3.3 聚合工程项目结构的pom文件说明
说明:因为这个地方复制的是课前资料的所以直接创建普通maven项目即可。
1.4.1 创建项目
1.4.2 编辑POM.xml文件
1.4.3 导入src文件
1.4.4 修改YML配置文件
1.4.5 配置项目启动项
问题说明: 为什么通过8091网址访问可以直接跳转到系统首页呢??
说明: web.xml 其中有一项配置叫做默认欢迎页面.
2.2.1 EasyUI介绍
easyui是一种基于jQuery、Angular.、Vue和React的用户界面插件集合。
easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。
使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。
easyui是个完美支持HTML5网页的完整框架。
easyui节省您网页开发的时间和规模。
easyui很简单但功能强大的。
学习方式 复制 黏贴 EasyUI(有中文网站)
2.2.2 EasyUI入门案例
2.2.3 编辑页面代码
2.2.4 关于后台页面说明
2.2.4.1 关于页面布局说明
2.2.4.2 树形结构展现
2.2.4.3 选项卡技术
3.3.1 业务需求
说明:当用户发起请求时其中有3个请求都是类似的功能.能否利用一个Controller方法实现通用的页面跳转.
3.3.2 实现策略
item:商品。
3.4.1 表格的入门案例
因为这个表格用的是EasyUI框架的表格,这个表格如何使用,在这里做了一个入门案例测试。
在UI框架中看到url属性时,在背后一定会发起ajax请求,这是UI框架的形式。
3.4.2 关于表格数据展现的说明
最外层是个{,说明是个对象。里面有2个属性 total和rows.
rows是个[ 所以里面是个list集合,里面是{说明存的是数据库对象数据。
3.5.1 JSON介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
3.5.2 Object对象格式
3.5.3 数组格式
3.5.4 JSON嵌套格式
3.5.5 JSON练习
点击查询实现在查询页面商品列表的展现。(上面哪个是入门案例分析。)
3.6.1 封装VO对象
3.6.2 商品列表页面分析
3.6.3 商品分页查询url地址分析(F12)
请求路径: /item/query
参数: page=1 当前分页的页数. rows = 20 当前分页的行数.
当使用分页操作时,那么会自动的拼接2个参数.进行分页查询.
3.6.4 编辑ItemController
说明: 用户发起Ajax请求,之后通过ItemController返回 EasyUITable的JSON串.
3.6.5 编辑ItemServiceImpl(普通方式实现分页)
3.6.6 编辑ItemMapper
pojo,mapper层复制课前资料里面已经用mp标识过了,所以这里只需要修改service层,添加配置类。
3.7.1 修改ItemServiceImpl
3.7.2 编辑配置类(规范:直接从mp官网引进来不用改)
3.8.1 商品价格格式化说明
分析:数据库的价格数据为了防止在计算时因为小数导致精度溢出问题,在向数据库存数据时都是先乘以100,在页面回显的时候除以100。
在页面是如何缩小100倍呢?
在item-list.jsp页面通过formatter关键字调用KindEditorUtil.formatPrice函数,这个函数在commom.js文件里面。
1).页面属性说明
当数据在进行展现时,会通过formatter关键字进行数据格式化调用.具体的函数KindEditorUtil.formatPrice函数。
3.8.2 状态格式化说明
1).页面标识
2).页面js分析
3.8.3 叶子类目格式化说明
1).页面分析
说明:根据页面标识,要在列表页面中展现的是商品的分类信息.后端数据库只传递了cid的编号.我们应该展现的是商品分类的名称,方便用户使用。
解决:根据查询数据库的cid在进行一次发送ajax请求,查询对应的商品分类名称。这和上面的状态码不一样,状态码只有2个,而这对应的商品分类名称不确定只能在进行一次查询。
3.8.3.1 叶子类目的po层
放在common工具api模块。
3.8.3.2 叶子类目的controller层
3.8.3.3 叶子类目的service层
3.8.3.4 叶子类目的serviceimpl层
3.8.3.5 叶子类目的mapper层
3.8.4 关于叶子类目Ajax嵌套问题说明
3.8.4.1 问题描述
3.8.4.2 问题分析
商品的列表中发起2次ajax请求,因为都是异步,所以外面的第一次的ajax请求返回数据时把数据直接渲染到页面上,同时在发送第二次ajax请求返回数据,但这时已经渲染完页面了,且页面只会刷新一次。这时第二次请求的的返回值渲染不到页面导致查询为空白。
如果设置了第二次请求为同步,则第一次请求解析返回值在发送第二次请求得到返回值后再进行页面渲染,就正确显示了。
第一次: