java分页通用篇
一、创建分页通用类
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'>«</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'>»</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'>«</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'>»</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分页通用篇的更多相关文章
- 【Bootstrap】Bootstrap和Java分页-第二篇
目录 关于此文 配置xml-pager.tld 分页控件-Pager 分页action集成类-BaseController 实例-Dao 实例-service 实例-action 实例-JSP 实例- ...
- 【Bootstrap】Bootstrap和Java分页-第一篇
目录 关于此文 pagination BetweenIndex DefaultPagination QueryHandler BookDaoImpl BookServiceImpl BookActio ...
- Java 分页通用
1.定义分页模型:PageModel package com.common.page; import java.util.List; /** * 封装分页信息 * @author Administra ...
- JAVA 分页工具类及其使用
Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...
- java - 分页类
pager.java package com.jspnews.util; import java.io.Serializable; import java.util.List; /** * * < ...
- 全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)
注:本文将会不定期维护与更新,有需要的朋友请在 Github 上订阅该条 Issues:<全新 Mac 安装指南(通用篇)>. 在 Mac 电脑上只用 Windows 操作系统的同学请看到 ...
- C#常用函数--通用篇
C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址" ...
- 数据你把它的金额-JAVA分页
数据量你造吗-JAVA分页 原创地址: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...
- 浅谈Java分页技术
话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...
随机推荐
- <Android>列表、网格、画廊视图及适配器的绑定
列表视图和适配器的绑定 列表视图既可以使用ListView组件,也可以继承ListActivity.显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承 ...
- lol人物模型提取(八)
今天顺风终于把包裹送到了北航新主楼自提柜,怀着激动喜悦的心情,我小心翼翼地将其取回. 到了晚上,是时候解开佐伊的封印了! 开了个小口,发现里面包得还挺严实的. 去掉了纸盒,里面还有一层 ...
- week1技术随笔
2016-09-06 2016年9月3日 类别c 内容c 开始时间s 结束时间e 被打断时间I 总计(min) 读书 读构建之法 8:40 10:00 11 69 读书 构建之法-个人能力 , ...
- 我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
一.如果数据重要,请先备份数据 二.删除表中数据 SQL: Delete From ('表名') 如:Delete From abcd 三.执行新语句 SQL: dbcc checkident('表 ...
- 浅述Try {} Catch{} 作用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test ...
- 基本数据类型(int,bool,str)
目录: 1.int 数字类型 2.bool 布尔值 3.str 字符串类型 一.整型(int) 在python3中所有的整数都是int类型.但在python2中如果数据量 ...
- java中sql语句能不能加分号的问题?
一.原因 在程序运行中,当执行sql后总是报无效字符错误:但是把程序放在pl/sql中执行又没有错误.让我很纳闷!于是我开始查找资料,然后我终于发现了问题. 二.问题剖析 原来在程序中:如果你在程序 ...
- EL中定义函数
1.在java类中要定义一个static函数 2配置:在WEB-INF/*.tld的配置文件 3在JSP页面上 4使用
- Qt信号与槽机制
一.信号和槽机制 信号和槽用于两个对象之间的通信,信号和槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出的特征.在GUI编程中,当改变了一个部件时,总希望其他部件也能了解到该变化.更一般来说 ...
- 《转》vue-cli的webpack模板项目配置文件注释
一.文件结构 本文主要分析开发(dev)和构建(build)两个过程涉及到的文件,故下面文件结构仅列出相应的内容. ├─build │ ├─build.js │ ├─check-versions.js ...