一、创建分页通用类

 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. lintcode-185-矩阵的之字型遍历

    185-矩阵的之字型遍历 给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历. 样例 对于如下矩阵: [ [1, 2, 3, 4], [5, 6, 7, 8], [9 ...

  2. 移动端调试和fiddler移动端抓包使用

    这里介绍一款移动端的调试工具以及抓包工具fiddler的使用.也是初次接触,算是初次接触的总结. 1,移动端调试工具.手机截图如下 代码实现 <!DOCTYPE html> <htm ...

  3. 简介Kafka Streams

    本文从以下几个方面介绍Kafka Streams: 一. Kafka Streams 背景 二. Kafka Streams 架构 三. Kafka Streams 并行模型 四. Kafka Str ...

  4. Python35 升级 pip

    使用pip安装插件的时候报错: You are using pip version 8.1.1, however version 9.0.1 is available.You should consi ...

  5. Struts2自定义结果视图(servlet验证码)

    1.编写一个类实现com.opensymphony.xwork2.Result,或者继承org.apache.struts2.dispatcher.StrutsResultSupport 2.自定义的 ...

  6. 第三章 AOP

    什么是AOP AOP的编写方式 什么是AOP? 是一种面向切面的思想,关注的是切面中的相似功能,将这些功能抽离出来,提高代码的复用性 AOP术语 advice-通知:要执行的任务 Spring切面有5 ...

  7. RT-thread v2.1.0修正版

    RT-Thread v2.1.0是v2.0.1正式版这个系列的bug修正版.RT-Thread v2.1.0修正的主要内容包括: 这个版本经历的时间比较长,并且原定的一些目标也还未能完成(更全的POS ...

  8. BZOJ 1079 着色方案(DP)

    如果把当前格子涂什么颜色当做转移的话,状态则是每个格子的颜色数还剩多少,以及上一步用了什么颜色,这样的状态量显然是5^15.不可取. 如果把当前格子涂颜色数还剩几个的颜色作为转移的话,状态则是每个格子 ...

  9. Django 2.0 学习(08):Django 自动化测试

    编写我们的第一个测试 确定bug 幸运的是,在polls应用中存在一个小小的bug急需修复:无论Question的发布日期是最近(最后)的日期,还是将来很多天的日期,Question.was_publ ...

  10. HTML、 CSS、 JavaScript三者的关系 1

    HTML. CSS. JavaScript三者的关系 网页主要由三部分组成: 结构( Structure) . 表现( Presentation) 和行为( Behavior)    HTML —— ...