一、创建分页通用类

  1. package com.dkyw.util;
  2.  
  3. import java.util.List;
  4.  
  5. public class Page<T> {
  6. private int total;//总页数
  7. private int pageIndex;//当前页码
  8. private int pageSize;//每页大小
  9. private List<T> rows;//当前页的集合对象
  10.  
  11. public int getTotal() {
  12. return total;
  13. }
  14. public void setTotal(int total) {
  15. this.total = total;
  16. }
  17. public int getPageIndex() {
  18. return pageIndex;
  19. }
  20. public void setPageIndex(int pageIndex) {
  21. this.pageIndex = pageIndex;
  22. }
  23. public int getPageSize() {
  24. return pageSize;
  25. }
  26. public void setPageSize(int pageSize) {
  27. this.pageSize = pageSize;
  28. }
  29. public List<T> getRows() {
  30. return rows;
  31. }
  32. public void setRows(List<T> rows) {
  33. this.rows = rows;
  34. }
  35.  
  36. }

二、serivice层封装返回的集合信息为page对象的集合

  1. public Page<Template> getTemplateForPage(int pageIndex,int pageSize) {
  2. int pageStart = (pageIndex - 1) * pageSize;
  3. List<Template> list = templateDao.getForPage(pageStart,pageSize);
  4. for (Template template : list) {
  5. template.setDataSource(dataSourceDao.getById(template
  6. .getDataSourceId()));
  7. }
  8.  
  9. Page<Template> page =new Page<Template>();
  10. page.setPageIndex(pageIndex);
  11. page.setPageSize(pageSize);
  12. page.setRows(list);
  13. int count = templateDao.getCount();
  14. page.setTotal((int)Math.ceil(count*1.0/pageSize));
  15. return page;
  16. }

三、返回至前端后的处理

  1. /* 获取分页数据 */
  2. function getTemplateInfoForPage(pageIndex,pageSize){
  3. $.ajax({
  4. url : "getTemplateInfoForPage.action",//要请求的服务器url
  5. data : {
  6. "pageIndex" : pageIndex,
  7. "pageSize":pageSize
  8. },
  9. async : true, //是否为异步请求
  10. type : "POST", //请求方式为POST
  11. success : function(result) {
  12. console.log("分页数据");
  13. result = JSON.parse(result);
  14. var _LENGTH = 3;//最大页数3
  15. //拼接分页
  16. if(result[0].total<_LENGTH){
  17. $("#pageInfo").html("");
  18. var start = (pageIndex-1)>0 ? pageIndex-1 : pageIndex;
  19. var end = (pageIndex+1)<=result[0].total ? pageIndex+1 : pageIndex;
  20. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+start +","+pageSize+")' aria-label='Previous'><span aria-hidden='true'>&laquo;</span></a></li>");
  21. for (var int = 1; int < result[0].total+1; int++) {
  22. if(int==pageIndex){
  23. $("#pageInfo").append("<li class='active'><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
  24. }else{
  25. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
  26. }
  27.  
  28. }
  29. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+end+","+pageSize+")' aria-label='Next'><span aria-hidden='true'>&raquo;</span></a></li>")
  30. }else{
  31. debugger;
  32. $("#pageInfo").html("");
  33. var pageArr=new Array();
  34. //
  35. if(pageIndex+Math.floor(_LENGTH/2) <= result[0].total&&pageIndex-Math.floor(_LENGTH/2) > 0){//当前页没有超过总页数
  36. for(var i = 0 ;i < _LENGTH; i++){
  37. pageArr[i] = pageIndex-Math.floor(_LENGTH/2) + i;
  38. }
  39. }else if(pageIndex<=Math.floor(_LENGTH/2)){
  40. for (var int2 = 1; int2 < _LENGTH+1; int2++) {
  41. pageArr.push(int2);
  42. }
  43. // pageArr = [1,2,3,4,5,6,7,8,9] ;
  44. }else{
  45. for(var i = 0 ;i < _LENGTH; i++){
  46. //
  47. pageArr[i] = result[0].total-(_LENGTH-1)+i;
  48. }
  49. }
  50.  
  51. var start = (pageIndex-1)>0 ? pageIndex-1 : pageIndex;
  52. var end = (pageIndex+1)<=result[0].total ? pageIndex+1 : pageIndex;
  53. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+start +","+pageSize+")' aria-label='Previous'><span aria-hidden='true'>&laquo;</span></a></li>");
  54. for (var int = pageArr[0]; int <= pageArr[pageArr.length-1]; int++) {
  55. if(int==pageIndex){
  56. $("#pageInfo").append("<li class='active'><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
  57. }else{
  58. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+int+","+pageSize+")'>"+int+"</a></li>");
  59. }
  60.  
  61. }
  62. $("#pageInfo").append("<li><a onclick='getTemplateInfoForPage("+end+","+pageSize+")' aria-label='Next'><span aria-hidden='true'>&raquo;</span></a></li>")
  63.  
  64. }
  65.  
  66. $("#tbody").html("");
  67. $.each(result[0].rows,function(index,item){
  68. console.log(item);
  69. $("#tbody").append("<tr onclick='showTemplate("+item.id
  70. +",\""+item.echartType+"\");'>"
  71. +"<td><input type='checkbox' name='deletecheck'data-id="+item.id+" data-type="+echartTypemap[item.echartType]+"></td>"
  72. +"<td>"+item.id+"</td>"
  73. +"<td>"+item.templateName+"</td>"
  74. +"<td>"+item.dataSource.dataName+"</td>"
  75. +"<td>"+getEchartType(item.echartType)+"</td>"
  76. +"<td>"+getEchartMethod(item.echartMethod)+"</td>"
  77. +"<td>"+item.tableName+"</td>"
  78. +"<td><button type='button' class='btn btn-default' onclick='updateTemplate("+
  79. item.id+","+item.dataSource.id+",\""+item.templateName+"\",\""+item.echartType+"\",\""+item.rowField+"\",\""+item.tableName+"\");'>修改</button></td>"
  80. +"</tr>");
  81. });
  82. }
  83. })
  84. }

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. Jira & SVN & Chrome extensions

    Jira & SVN & Chrome extensions Plugins SVN & Jira Plugins ok selector bug document.query ...

  2. [计算机网络] DNS何时使用TCP协议,何时使用UDP协议

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...

  3. 【bzoj4715】囚人的旋律 dp

    题目描述 给你一个 $1\sim n$ 的排列 $a_i$ ,若 $i\le j$ 且 $a_i\ge a_j$ ,则 $i$ 到 $j$ 有一条边.现在给你这张图,求既是独立集(任意两个选定点都没有 ...

  4. [NOIP2016]愤怒的小鸟 状态压缩dp

    题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形 ...

  5. Bellman—Ford算法思想

    ---恢复内容开始--- Bellman—Ford算法能在更普遍的情况下(存在负权边)解决单源点最短路径问题.对于给定的带权(有向或无向)图G=(V,E),其源点为s,加权函数w是边集E的映射.对图G ...

  6. CentOS 服务ftp(vsftpd)

    1.检查是否已经安装vsftpd yum list installed | grep vsftpd 2.安装vsftpd yum install -y vsftpd 3.检查vsftpd system ...

  7. 【转】C# 利用反射动态创建对象

    http://www.cnblogs.com/Jan_Dai/archive/2010/11/09/1872812.html Activator.CreateInstance(Type.GetType ...

  8. 【原创】U盘插入磁盘显示脱机解决

    问题说明:插入U盘,电脑可识别硬件,打开我的电脑,无显示U盘所在的磁盘.,并且在计算机管理的磁盘管理看到的U盘为脱机状态 解决方案:1.打开命令,输入 diskpart  回车,输入list disk ...

  9. [AHOI2009]中国象棋 DP,递推,组合数

    DP,递推,组合数 其实相当于就是一个递推推式子,然后要用到一点组合数的知识 一道很妙的题,因为不能互相攻击,所以任意行列不能有超过两个炮 首先令f[i][j][k]代表前i行,有j列为一个炮,有k列 ...

  10. Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法

    最近在做播放器的时候遇到一个问题,在屏幕方向改变之后需要切换播放器全屏/非全屏的时候,在重写了onConfigurationChanged方法并在manifest.xml配置文件中添加 android ...