03_后台管理页面商品列表查询

03_后台管理页面/商品列表查询

1.展示后台的首页

1.1 先把前端完成后台管理的页面复制到_web下
  • 把html改为jsp,index.html->jsp
    • 在首行加上page 声明
    • 把文件后缀改为.jsp
1.2 在controller包中新建一个PageController,做页面跳转的03_后台管理页面商品列表查询_第1张图片
  • 当访问根目录时,自动跳转到首页
  • 把原来自动生成的index.jsp删除,把web.xml中的欢迎列表也删除
1.3 启动访问
  • 首先启动zookeeper
  • 再启动manager
  • 再启动web
1.4 更改页面的访问路径,从服务器内部转发

03_后台管理页面商品列表查询_第2张图片

  • 在PageController中写一个方法来处理请求

    • 以文件名称作为访问路径参数,直接返回参数,来拼一个文件名
      03_后台管理页面商品列表查询_第3张图片

2.商品列表的查询

2.1 点击查询商品,查看报错的路径和参数

在这里插入图片描述

  • 结合item_list.jsp中的代码
    03_后台管理页面商品列表查询_第4张图片

  • 传递了两个参数:?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

    5.1.10
    
  • 先配置MyBatis的分页插件PageHelper

    • 方式一:在Spring配置文件中配置

    • 方式二:MyBatis配置文件中配置SqlMapConfig.xml

      
      
      <configuration>
      	
      
      	
      	<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);
        }
    

你可能感兴趣的:(分布式商城系统项目实战)