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>");
                });
            }
        })
    }
时间: 2024-11-10 23:16:57

java分页通用篇的相关文章

Java企业通用平台框架:Bootstrap、HTML5、jQuery、Spring MVC、Mybatis、Hibernate、高性能、高并发

1.适配所有设备(PC.平板.手机等),兼容所有浏览器(Chrome.Firefox.Opera.Safari.IE6~IE11等),适用所有项目(MIS管理信息系统.OA办公系统.ERP企业资源规划系统.CRM客户关系管理系统.网站等). 2.快速开发,敏捷的数据持久层解决方案. 2.1.事务自动处理. 2.2.O/R Mapping基于注解,零配置XML,便于维护,学习成本低. 2.3.接口和实现分离,不需写数据持久层代码,只需写接口,自动生成添加.修改.删除.排序.分页.各种条件的查询等S

Spring MVC、Mybatis、Hibernate、Bootstrap、HTML5、jQuery、Spring Security安全权限、Lucene全文检索、Ehcache分布式缓存 、高性能、高并发【Java企业通用开发平台框架】

功能特点: 1.适配所有设备(PC.平板.手机等),兼容所有浏览器(Chrome.Firefox.Opera.Safari.IE6~IE11等),适用所有项目(MIS管理信息系统.OA办公系统.ERP企业资源规划系统.CRM客户关系管理系统.网站.管理后台等). 2.快速开发,敏捷的数据持久层解决方案. 2.1.事务自动处理. 2.2.O/R Mapping基于注解,零配置XML,便于维护,学习成本低. 2.3.接口和实现分离,不需写数据持久层代码,只需写接口,自动生成添加.修改.删除.排序.分

Java中都通用文件下载(ContentType、文件头、response、out四步骤)

Java中都通用文件下载(ContentType.文件头.response.out四步骤) 新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian   我们就直接切入主题啦,文件下载只需要四步: 1.设置文件ContentType类型 2.设置文件头 3.通过response获取ServletOutputStream对象(out) 4.写到输出流(out)中 下载代码: 这里我使用的是SpringMVC,不过它在这里的唯一用途就是用来获取ServletCon

浅谈Java分页技术

话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount;//一共有多少页 int rowCount;//一共有多少条记录 说明: 1.pageSize是指定的 2.pageNow是用户选择的 3.rowCount是从表中查询得到的 4.pageCount是计算得到的,该计算为: if(rowCount%pageSize==0) { pageCount=r

java web进阶篇(四) Tomcat数据源

动态web开发的最大特点是可以进行数据库的操作,传统的jdbc操作由于步骤重复性造成程序性能下降. 先来回顾JDBC的操作原理 1.加载数据库驱动程序,数据库驱动程序通过classpath配置. 2.通过DirverManager类取得数据库连接对象. 3.通过Connection实例化PreparedStatement对象,编写sql语句命令操作数据库. 4.数据库属于资源操作,操作完成后要关闭数据库以释放资源. 其实以上操作,1.2.4步骤是重复的,保留3,实际上就是数据源产生的原因. 数据

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl

学习java随笔第九篇:java异常处理

在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally语句 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } 抛出异常 使用thows和throw语句抛出异常 public static vo

数据量你造吗-JAVA分页

数据量你造吗-JAVA分页 原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks 学习的心态第一,解行要相应.其实<弟子规>在"余力学文"当中,一开头就强调了这一个重点."不力行,但学文,长浮华,成何人",这个没有侥幸的,只要学了不去做,无形当中就会增长傲慢,自己不知道.-<弟子规> Written In The Font JAVA-Web 基础那块,我自己也

java权限系统设计篇

数据库表设计 1.1.1.   模块管理(jk_module) 项 类型 说明 id long 就是数据库记录idx号 name string 模块名称 orderid int 排序id  由小到大显示 deleted int 默认0 (0 正常  1删除状态) 1.1.2.   模块功能管理(jk_module_fun) 项 类型 说明 id long 就是数据库记录idx号 moduleid long 所属模块 name string 功能名称 urls string 功能url集合 ord