一、创建分页通用类

 package com.dkyw.util;

 import java.util.List;

 public class Page<T> {
private int total;//总页数
private int pageIndex;//当前页码
private int pageSize;//每页大小
private List<T> rows;//当前页的集合对象 public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
} }

二、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();
//
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++){
//
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>");
});
}
})
}

java分页通用篇的更多相关文章

  1. 【Bootstrap】Bootstrap和Java分页-第二篇

    目录 关于此文 配置xml-pager.tld 分页控件-Pager 分页action集成类-BaseController 实例-Dao 实例-service 实例-action 实例-JSP 实例- ...

  2. 【Bootstrap】Bootstrap和Java分页-第一篇

    目录 关于此文 pagination BetweenIndex DefaultPagination QueryHandler BookDaoImpl BookServiceImpl BookActio ...

  3. Java 分页通用

    1.定义分页模型:PageModel package com.common.page; import java.util.List; /** * 封装分页信息 * @author Administra ...

  4. JAVA 分页工具类及其使用

    Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...

  5. java - 分页类

    pager.java package com.jspnews.util; import java.io.Serializable; import java.util.List; /** * * < ...

  6. 全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)

    注:本文将会不定期维护与更新,有需要的朋友请在 Github 上订阅该条 Issues:<全新 Mac 安装指南(通用篇)>. 在 Mac 电脑上只用 Windows 操作系统的同学请看到 ...

  7. C#常用函数--通用篇

    C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址" ...

  8. 数据你把它的金额-JAVA分页

    数据量你造吗-JAVA分页 原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...

  9. 浅谈Java分页技术

    话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...

随机推荐

  1. Css入门课程 Css基础

    html css javascript三者关系 html是网页内容的载体 css是网页内容的表现,外观控制 javascript是网页逻辑处理和行为控制 css相对于html标签属性的优势 css简化 ...

  2. FineCMS介绍

      产品简介 FineCMS(简称免费版.企业版.公益版)是一款基于PHP+MySql+CI框架开发的高效简洁的中小型内容管理系统,面向多终端包括Pc端网页和移动端网页,支持自定义内容模型和会员模型, ...

  3. vue-cli项目里npm安装使用elementUI

    第一步:进入到项目目录里 npm i element-ui -S 第二步:在main.js中引入 import ElementUI from 'element-ui' import 'element- ...

  4. 枚举当前环境中打开的所有IE

    IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合. 首先添加程序需要的头文件和tlb库 //#imp ...

  5. WPF以access为数据库,简单实现一个显示数据和更新数据的实例

    做一个小实例,如下图,

  6. BZOJ 1911 特别行动队(斜率优化DP)

    应该可以看出这是个很normal的斜率优化式子.推出公式搞一搞即可. # include <cstdio> # include <cstring> # include < ...

  7. CentOS7 从查看、启动、停止服务说起systemctl

    执行命令“systemctl status 服务名.service”可查看服务的运行状态,其中服务名后的.service 可以省略,这是CenOS7以后采用systemd作为初始化进程后产生的变化. ...

  8. BZOJ1090:[SCOI2003]字符串折叠——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1090 Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S=S 2 ...

  9. URAL.1033 Labyrinth (DFS)

    URAL.1033 Labyrinth (DFS) 题意分析 WA了好几发,其实是个简单地DFS.意外发现这个俄国OJ,然后发现ACRUSH把这个OJ刷穿了. 代码总览 #include <io ...

  10. UVA.455 Periodic Strings(字符串的最小周期)

    Periodic Strings 模板 题意分析 判断字符串的最小周期 代码总览 /* Title:UVA.455 Author:pengwill Date:2016-12-16 */ #includ ...