一.课程计划
1 | 1、前台系统搭建 |
二.商城首页显示
2.1工程搭建
这里注意,看我图片上显示的那个伪静态,就是说,现在大多数网站的搜索引擎它对静态页面的支持比较好,但是我们的jsp页面还是jsp页面啊,难道要改吗?这个时候我就可以使用这种方式
2.2那如何展示首页呢?
我们前面在web.xml中对springmvc的前端控制器是不是做了处理,它只拦截以.html结尾的请求对吧?那我们思考如何写呢?
一般我们展示页面是不是通过Controller来进行的,来我们看一下Controller和Handler是什么呢?
好,搞清楚这个之后,我们该如何写呢,我们是不是一般这样写的
一般:http://localhost:8082/
但是现在我们这样写可以吗?
当然不行,因为前端控制器只会拦截以.html结尾的请求,那我们该怎么做呢???
这个时候我们就用到了web.xml
三.首页显示动态分析:
内容信息要从数据库中获得
3.1动态展示分析
1 | 1、内容需要进行分类 |
四.内容服务系统创建
4.1工程搭建
4.2 e3_content
pom文件:
1 | <?xml version="1.0" encoding="UTF-8"?> |
搭建的过程是,先把e3_manage的pom文件复制过来,再改改删删,比如common的依赖就不用删,Tomcat插件的端口号改一下就完了
4.3 e3-content-interface
pom文件:
1 | <?xml version="1.0" encoding="UTF-8"?> |
依赖了pojo
4.4 e3_content_Service
pom文件:
1 | <?xml version="1.0" encoding="UTF-8"?> |
dao的依赖不需要改动,因为我们还要用到dao中的mapper接口,而interface需要改动一下,interface依赖我们自己的interface,也就是e3_content_interface
我们来看一下Service的配置文件需要改动什么,我们得先把e3_manager_Service的配置文件拷贝过来
五.Cms系统实现
5.1内容分类管理
5.1.1展示内容分类
功能分析:
请求的url:/content/category/list
请求的参数:id,当前节点的id。第一次请求是没有参数,需要给默认值“0”
Json数据:
1 | [{id:1,text:节点名称,state:open(closed)}, |
业务逻辑:
1 | 1、取查询参数id,parentId |
Service层
接口:
1 | public interface ContentCategoryService { |
实现类:
1 | /** |
发布服务:
1 | <?xml version="1.0" encoding="UTF-8"?> |
不然启动就会报错,如果不这样写的话ref=”contentCategoryServiceImpl”
Web层:
E3-manager-web
依赖e3-content-interface模块
Controller:
1 | /** |
启动测试,我们需要先将e3_content打包到maven仓库,再启动e3_content服务,再启动e3_manager服务,再启动e3_manager_web,这里e3_content和e3_manager都属于服务层
5.1.2新增节点
1 | 请求的url:/content/category/create |
Dao层
可以使用逆向工程。
注意:修改完代码后,需要向本地仓库安装e3-manager-dao包
Service层
参数:parentId、name
返回值:返回E3Result,其中包装TbContentCategory对象
接口:
1 | public interface ContentCategoryService { |
实现类:
1 | /** |
表现层
1 | 请求的url:/content/category/create |
1 | /** |
注意:我复制的时候是和类全部复制的,防止大家看不懂。
5.2内容管理
5.2.1功能点分析
1 | 1、内容列表查询(作业) |
5.2.2内容列表查询(已做)
1 | 请求的url:/content/query/list |
5.2.3新增内容
1 | 提交表单请求的url:/content/save |
Dao
逆向工程
Service
1 | public interface ContentService { |
1 | package yp.e3mall.content.service.impl; |
发布服务
引用服务
Controller
1 | /** |
六.商城首页轮播图动态展示
分析:
Service:
1 | package yp.e3mall.content.service; |
只看最后一个方法
1 | /** |
只看最后一个方法
依赖添加
这次我们的web层应该写在e3_portal_web中了,所以我们得在这一层依赖interface接口,再引用dubbo服务
Controller层
1 | /** |
注意:写在了我们之前写的那个方法当中,我们想一想这个89我们不能写死吧!所以我们可以写在配置文件中
1 | @RequestMapping("/index") |