zoukankan      html  css  js  c++  java
  • java分页通用篇

    一、创建分页通用类

     1 package com.dkyw.util;
     2 
     3 import java.util.List;
     4 
     5 public class Page<T> {
     6     private int total;//总页数
     7     private int pageIndex;//当前页码
     8     private int pageSize;//每页大小
     9     private List<T> rows;//当前页的集合对象
    10     
    11     public int getTotal() {
    12         return total;
    13     }
    14     public void setTotal(int total) {
    15         this.total = total;
    16     }
    17     public int getPageIndex() {
    18         return pageIndex;
    19     }
    20     public void setPageIndex(int pageIndex) {
    21         this.pageIndex = pageIndex;
    22     }
    23     public int getPageSize() {
    24         return pageSize;
    25     }
    26     public void setPageSize(int pageSize) {
    27         this.pageSize = pageSize;
    28     }
    29     public List<T> getRows() {
    30         return rows;
    31     }
    32     public void setRows(List<T> rows) {
    33         this.rows = rows;
    34     }
    35     
    36 }

    二、serivice层封装返回的集合信息为page对象的集合

    public Page<Template> getTemplateForPage(int pageIndex,int pageSize) {
            int pageStart = (pageIndex - 1) * pageSize;
            List<Template> list = templateDao.getForPage(pageStart,pageSize);
            for (Template template : list) {
                template.setDataSource(dataSourceDao.getById(template
                        .getDataSourceId()));
            }
            
            Page<Template> page =new Page<Template>();
            page.setPageIndex(pageIndex);
            page.setPageSize(pageSize);
            page.setRows(list);
            int count = templateDao.getCount();
            page.setTotal((int)Math.ceil(count*1.0/pageSize));
            return page;
        }

    三、返回至前端后的处理

        /* 获取分页数据 */
        function getTemplateInfoForPage(pageIndex,pageSize){
            $.ajax({
                url : "getTemplateInfoForPage.action",//要请求的服务器url 
                data : {
                    "pageIndex" : pageIndex,
                    "pageSize":pageSize
                },
                async : true, //是否为异步请求
                type : "POST", //请求方式为POST
                success : function(result) {
                    console.log("分页数据");
                    result = JSON.parse(result);
                    var _LENGTH = 3;//最大页数3
                    //拼接分页
                    if(result[0].total<_LENGTH){
                        $("#pageInfo").html("");
                        var start = (pageIndex-1)>0 ? pageIndex-1 : pageIndex;
                        var end = (pageIndex+1)<=result[0].total ? pageIndex+1 : pageIndex;
                        $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+start +","+pageSize+")' aria-label='Previous'><span aria-hidden='true'>&laquo;</span></a></li>");
                        for (var int = 1; int < result[0].total+1; int++) {
                            if(int==pageIndex){
                                $("#pageInfo").append("<li class='active'><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
                            }else{
                                $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
                            }
                            
                        }
                        $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+end+","+pageSize+")' aria-label='Next'><span aria-hidden='true'>&raquo;</span></a></li>")
                    }else{
                        debugger;
                        $("#pageInfo").html("");
                        var pageArr=new Array();
                        //4
                        if(pageIndex+Math.floor(_LENGTH/2) <= result[0].total&&pageIndex-Math.floor(_LENGTH/2) > 0){//当前页没有超过总页数
                            for(var i = 0 ;i < _LENGTH; i++){
                                pageArr[i] = pageIndex-Math.floor(_LENGTH/2) + i;
                            }
                        }else if(pageIndex<=Math.floor(_LENGTH/2)){
                            for (var int2 = 1; int2 < _LENGTH+1; int2++) {
                                pageArr.push(int2);
                            }
                               // pageArr = [1,2,3,4,5,6,7,8,9] ;
                        }else{
                            for(var i = 0 ;i < _LENGTH; i++){
                                //8
                                pageArr[i] = result[0].total-(_LENGTH-1)+i;
                            }
                        }
                        
                        var start = (pageIndex-1)>0 ? pageIndex-1 : pageIndex;
                        var end = (pageIndex+1)<=result[0].total ? pageIndex+1 : pageIndex;
                        $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+start +","+pageSize+")' aria-label='Previous'><span aria-hidden='true'>&laquo;</span></a></li>");
                        for (var int = pageArr[0]; int <= pageArr[pageArr.length-1]; int++) {
                            if(int==pageIndex){
                                $("#pageInfo").append("<li class='active'><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
                            }else{
                                $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
                            }
                            
                        }
                        $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+end+","+pageSize+")' aria-label='Next'><span aria-hidden='true'>&raquo;</span></a></li>")
                        
                        
                        
                    }
                    
                    
                    
                    $("#tbody").html("");
                    $.each(result[0].rows,function(index,item){
                        console.log(item);
                        $("#tbody").append("<tr onclick='showTemplate("+item.id
                                +",""+item.echartType+"");'>"
                                +"<td><input type='checkbox' name='deletecheck'data-id="+item.id+" data-type="+echartTypemap[item.echartType]+"></td>"
                                +"<td>"+item.id+"</td>"
                                +"<td>"+item.templateName+"</td>"
                                +"<td>"+item.dataSource.dataName+"</td>"
                                +"<td>"+getEchartType(item.echartType)+"</td>"
                                +"<td>"+getEchartMethod(item.echartMethod)+"</td>"
                                +"<td>"+item.tableName+"</td>"
                                +"<td><button type='button' class='btn btn-default' onclick='updateTemplate("+
                                       item.id+","+item.dataSource.id+",""+item.templateName+"",""+item.echartType+"",""+item.rowField+"",""+item.tableName+"");'>修改</button></td>"
                                +"</tr>");
                    });
                }
            })
        }
  • 相关阅读:
    WIN10解决:失败 – 检测到病毒文件下载失败问题
    Jinja2学习
    div设置百分比高度 宽度
    flask静态html
    python排序之冒泡排序
    python中的break continue之用法
    python中的break continue用法
    python格式化输出(% format用法)
    python基础数据类型
    linux下anaconda使用教程
  • 原文地址:https://www.cnblogs.com/hmy-1365/p/7514225.html
Copyright © 2011-2022 走看看