03_后台管理页面/商品列表查询
1.展示后台的首页
1.1 先把前端完成后台管理的页面复制到_web下
- 把html改为jsp,index.html->jsp
- 在首行加上page 声明
- 把文件后缀改为.jsp
1.2 在controller包中新建一个PageController,做页面跳转的![在这里插入图片描述](https://img-blog.csdnimg.cn/20200330204625238.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NTk4NjY3,size_16,color_FFFFFF,t_70)
- 当访问根目录时,自动跳转到首页
- 把原来自动生成的index.jsp删除,把web.xml中的欢迎列表也删除
1.3 启动访问
- 首先启动zookeeper
- 再启动manager
- 再启动web
1.4 更改页面的访问路径,从服务器内部转发
-
在PageController中写一个方法来处理请求
- 以文件名称作为访问路径参数,直接返回参数,来拼一个文件名
- 以文件名称作为访问路径参数,直接返回参数,来拼一个文件名
2.商品列表的查询
2.1 点击查询商品,查看报错的路径和参数
-
结合item_list.jsp中的代码
-
传递了两个参数:?page=1&rows=30
- page:当前页码pageNum
- rows:每页展示的行数pageSize
2.2 分析设计
- url:/item/list
- 参数:
- page:页码
- rows:每页行数
- 返回值,JSON数据:
- total:记录总数
- rows:当前页的集合
2.3 先common下创建一个pojo来封装EasyUi的数据网格的数据,给所有的后台管理提供统一的类型
-
新建一个EasyUiDataGridResult
package com.dream.common.pojo; import java.io.Serializable; import java.util.List; public class EasyUiDataGridResult implements Serializable { private Long total; private List<?> rows;//? 泛型通配符 相当于Object public EasyUiDataGridResult(Long total, List<?> rows) { this.total = total; this.rows = rows; } public EasyUiDataGridResult() { } public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } public List<?> getRows() { return rows; } public void setRows(List<?> rows) { this.rows = rows; } }
2.4 完成Controller
- 在ItemController添加路径处理
2.5 完成Service
-
先更改pageHelper的依赖版本为5.1.10
<pagehelper.version>5.1.10</pagehelper.version>
-
先配置MyBatis的分页插件PageHelper
-
方式一:在Spring配置文件中配置
-
方式二:MyBatis配置文件中配置SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--把数据库链接交给spring管理,SqlSession等--> <!--配置分页插件PageHelper--> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!--设置数据库类型--> <property name="helperDialect" value="mysql"/> </plugin> </plugins> </configuration>
-
-
在Service中使用即可
@Override public EasyUiDataGridResult list(int pageNum, int pageSize) { //MyBatis逆向工程生成的代码是咩有提供分页功能,可以使用MyBatis提供的分页插件PageHelper //设置分页信息,此方法下的第一个查询会进行分页 PageHelper.startPage(pageNum,pageSize); // 自动添加limit ?,? 返回的对象实际上包含了很多信息 不止查询结果,还有分页需要用的的信息 List<TbItem> tbItems = tbItemMapper.selectByExample(new TbItemExample()); //得到数据的总数 count--total PageInfo<TbItem> tbItemPageInfo = new PageInfo<>(tbItems); long total=tbItemPageInfo.getTotal(); return new EasyUiDataGridResult(total,tbItems); }