分页工具类

简介: 分页工具类

package cn.javabs.pet.util;

import java.io.UnsupportedEncodingException;
import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;

/**
 * 分页工具类
 */
public class PageUtil {
  
  /**
   * 获取分页代码
   * @param total 总记录数
   * @param page 当前页面
   * @param size 每页数量
   * @return
   */
  public static String getPageTool(HttpServletRequest request, long total, int page, int size){
    long pages = total % size ==0 ? total/size : total /size + 1;
    pages = pages==0 ? 1 : pages;
    String url = request.getRequestURL().toString();
    StringBuilder queryString = new StringBuilder();
    Enumeration<String> enumeration = request.getParameterNames();
    try { // 拼装请求参数
      while (enumeration.hasMoreElements()) {
        String element = (String) enumeration.nextElement();
        if(!element.contains("page")) { // 跳过page参数
          queryString.append("&").append(element).append("=").append(java.net.URLEncoder.encode(request.getParameter(element),"UTF-8"));
        }
      }
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    // 拼装分页代码
    StringBuilder buf = new StringBuilder();
    buf.append("<div style='text-align:center;'>\n");
    if (page <= 1) {
      buf.append("<a class='btn btn-info' disabled >首页</a>\n");
    }else{
      buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(1).append(queryString).append("'>首页</a>\n");
    }
    if (page <= 1) {
      buf.append("<a class='btn btn-info' disabled >上一页</a>\n");
    }else {
      buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(page>1 ? page-1 : 1).append(queryString).append("'>上一页</a>\n");
    }
    buf.append("<h2 style='display:inline;'>[").append(page).append("/").append(pages).append("]</h2>\n");
    buf.append("<h2 style='display:inline;'>[").append(total).append("]</h2>\n");
    if (page >= pages) {
      buf.append("<a class='btn btn-info' disabled >下一页</a>\n");
    }else {
      buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(page<pages ? page+1 : pages).append(queryString).append("'>下一页</a>\n");
    }
    if (page >= pages) {
      buf.append("<a class='btn btn-info' disabled >尾页</a>\n");
    }else {
      buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(pages).append(queryString).append("'>尾页</a>\n");
    }
    buf.append("<input type='text' class='form-control' style='display:inline;width:60px;' value=''/>");
    buf.append("<a class='btn btn-info' href='javascript:void(0);' οnclick='location.href=\"").append(url).append("?page=").append("\"+(this.previousSibling.value)+\"").append(queryString).append("\"'>GO</a>\n");
    buf.append("</div>\n");
    return buf.toString();
  }

}

目录
相关文章
|
6月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
|
6月前
|
SQL Java 数据库连接
mybatis常见分页技术和自定义分页原理实战
mybatis常见分页技术和自定义分页原理实战
217 0
|
12月前
mybatis-plus随机查询工具类(二)
mybatis-plus随机查询工具类(二)
174 0
|
3月前
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
6月前
|
SQL 存储 前端开发
【java】树形结构分页(真分页)
【java】树形结构分页(真分页)
132 1
|
12月前
|
XML 数据格式
mybatis-plus随机查询工具类
mybatis-plus随机查询工具类
184 0
|
6月前
|
SQL Java 数据库连接
Mybatis是如何实现分页功能的
Mybatis是如何实现分页功能的
49 0
|
SQL Java 数据库连接
Mybatis 是如何进行分页的,分页插件的原理是什么?
Mybatis 是如何进行分页的,分页插件的原理是什么?
149 0
|
Java 索引
Java集合分页
      在Java开发中,若单次展示的数据量太大,会造成程序响应缓慢,就需要用到 分页 功能,每一页展示一定量的数据,分多次展示 ... 那么在List集合中,如何实现 分页 功能呢?         本文将以3种方式,分别是: subList 方法、Java8 Stream 、Lists.partition,实现 List集合的分页功能。
215 0
|
SQL Java 数据库连接
Java 最常见的面试题: mybatis 有几种分页方式?
Java 最常见的面试题: mybatis 有几种分页方式?