一、创建分页通用类

 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. python学习笔记08:安装django

    linux环境安装django: sudo pip install django windows环境安装django: pip install django 验证django是否安装: python ...

  2. osg::Vec2 Vec3 Vec4

    osg::Vec2可以用于保存2D纹理坐标. osg::Vec3是一个三维浮点数数组. osg::Vec4用于保存颜色数据.

  3. web前端之路 - 开篇

    一 web发展历程 了解事物的历史有助于我们渐进式的从发展的思路清楚了解事物的来龙去脉. 这里有一篇网文写得比较清晰和完整:https://www.tianmaying.com/tutorial/we ...

  4. 【beta】Scrum站立会议第1次....11.3

    beta阶段,我们nice!团队将进行为期两周的冲刺,Scrum站立会议10次. 小组名称:nice! 组长:李权 成员:于淼  刘芳芳韩媛媛 宫丽君 项目内容:约跑app(约吧) 时间:2016.1 ...

  5. PHP中Session和Cookie的探究

    一.Session (1)Session的由来以及介绍 Session:在计算机中,尤其是在网络应用中,称为“会话控制”,生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就 ...

  6. 添加路由时啥时候是dev啥时候是gw

    A qumu ethA1 B 宿主机 ethA2  ethC2 C 树莓派 ethC1 在A和C中都是直接sudo route add default dev ethA1/ethC1 这样做是有问题的 ...

  7. Android基础------SQLite数据库(一)

    1.SQLite介绍 SQLite是一款非常流行的嵌入式数据库,它支持SQL操作,并且只用很少的内存. Android在运行时集成了SQLite,所有每个Android应用程序都可以使用SQLLite ...

  8. 使用户浏览器添加没有的字体@font-face

    @font-face的用法 @font-face { font-family: 'MyWebFont'; src: url('webfont.eot'); /* IE9 Compat Modes */ ...

  9. bzoj4753[JSOI2016]最佳团体

    题意:01分数规划,但可选的数字之间存在森林形的依赖关系(可以认为0号点是个虚根,因为并不能选). 虽然有森林形的依赖关系,但还是可以套分数规划的思路,二分答案k,判断是否存在一个比值大于k的方案 即 ...

  10. 2017 ICPC beijing E - Cats and Fish

    #1631 : Cats and Fish 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are many homeless cats in PKU camp ...