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; ...
随机推荐
- Jira & SVN & Chrome extensions
Jira & SVN & Chrome extensions Plugins SVN & Jira Plugins ok selector bug document.query ...
- [计算机网络] DNS何时使用TCP协议,何时使用UDP协议
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...
- 【bzoj4715】囚人的旋律 dp
题目描述 给你一个 $1\sim n$ 的排列 $a_i$ ,若 $i\le j$ 且 $a_i\ge a_j$ ,则 $i$ 到 $j$ 有一条边.现在给你这张图,求既是独立集(任意两个选定点都没有 ...
- [NOIP2016]愤怒的小鸟 状态压缩dp
题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形 ...
- Bellman—Ford算法思想
---恢复内容开始--- Bellman—Ford算法能在更普遍的情况下(存在负权边)解决单源点最短路径问题.对于给定的带权(有向或无向)图G=(V,E),其源点为s,加权函数w是边集E的映射.对图G ...
- CentOS 服务ftp(vsftpd)
1.检查是否已经安装vsftpd yum list installed | grep vsftpd 2.安装vsftpd yum install -y vsftpd 3.检查vsftpd system ...
- 【转】C# 利用反射动态创建对象
http://www.cnblogs.com/Jan_Dai/archive/2010/11/09/1872812.html Activator.CreateInstance(Type.GetType ...
- 【原创】U盘插入磁盘显示脱机解决
问题说明:插入U盘,电脑可识别硬件,打开我的电脑,无显示U盘所在的磁盘.,并且在计算机管理的磁盘管理看到的U盘为脱机状态 解决方案:1.打开命令,输入 diskpart 回车,输入list disk ...
- [AHOI2009]中国象棋 DP,递推,组合数
DP,递推,组合数 其实相当于就是一个递推推式子,然后要用到一点组合数的知识 一道很妙的题,因为不能互相攻击,所以任意行列不能有超过两个炮 首先令f[i][j][k]代表前i行,有j列为一个炮,有k列 ...
- Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
最近在做播放器的时候遇到一个问题,在屏幕方向改变之后需要切换播放器全屏/非全屏的时候,在重写了onConfigurationChanged方法并在manifest.xml配置文件中添加 android ...