vue结合springboot添加分页支持


vue结合springboot添加分页支持

前端代码

分页组件

<el-pagination
  @current-change="findPage"
  @size-change="findSize"
  small
  background
  prev-text="上一页"
  next-text="下一页"
  style="margin: 15px 0px"
  layout="prev, pager, next,jumper,total,sizes"
  :page-size="size"
  :current-page="pageNow"
  :page-sizes="[2,4,6,8,10]"
  :total="totals">
</el-pagination>

js代码

        data() {
            return {
                tableData:[],
                search:'',
                totals:0,
                size:6,
                pageNow:1,
            }
        },
        methods:{
            findPage(page){//处理分页
                console.log(page);
                this.page= page;
                this.findAll(page,this.size)
            },
            findSize(size){  //处理每页显示记录发生变化的方法
                console.log(size);
                this.size=size;
                this.findAll(this.page,size);
            },
              //查找所有
            findAll(page,size){
                page = page?page:this.pageNow;
                size = size?size:this.size;
                this.$http.get("http://localhost:8989/book/findByPage?                                                                   pageNow="+page+"&pageSize="+size).then(res=>{
                    console.log(res.data);
                    this.tableData=res.data.books;
                    this.totals=res.data.totals;
                })
            },
           created() {
           this.findAll();
        }

后端代码

dao层

    //分页查询
     List<Book> findByPage(@Param("start")Integer start, @Param("rows")Integer rows);

     //查询总条数
     Long findTotals();

mapper文件

    <!--    分页查询-->
     <select id="findByPage" resultType="Book">
          select * from book limit #{start},#{rows}
     </select>

     <!--    查询总条数-->
     <select id="findTotals" resultType="Long">
         select count(id) from book
     </select>

service层

    //分页查询
     List<Book> findByPage(Integer pageNow, Integer rows);
     //查询总条数
     Long findTotals();

serviceImpl层

    @Override
     public List<Book> findByPage(Integer pageNow, Integer rows) {
         int start = (pageNow-1)*rows;
         return bookDAO.findByPage(start,rows);
     }

     @Override
     public Long findTotals() {
         return bookDAO.findTotals();
     }

controller层

    //分页查询
     @GetMapping("findByPage")
     public Map<String,Object> findByPage(Integer pageNow, Integer pageSize){
         Map<String,Object> results = new HashMap<>();
         pageNow = pageNow == null?1:pageNow;  //避免空指针
         pageSize = pageSize == null?4:pageSize;  //避免空指针
         List<Book> books=service.findByPage(pageNow,pageSize);
         Long totals = service.findTotals();
         results.put("books",books);
         results.put("totals",totals);
         return results;
     }

每次只需要把实体类 Book 换成 新的实体类

//后端controller层方法
results.put("books",books);
results.put("totals",totals);
//前端代码 findAll 方法
this.tableData=res.data.books;
this.totals=res.data.totals;

⚠️ books totals 要对应正确一致


文章作者: fejxc
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fejxc !
评论
  目录