java 分页代码

java========================

/**
* 分页实体类
* @version [版本号, Nov 9, 2011]
*/
public class Page {

private int currentPage;//当前页
private int pageSize; //分页大小
private int totalNum; //总条数
private int totalPage; //总页数
private String url; //url地址
//private Object obj;
private String firstPageUrl;//首页
private String nextPageUrl; //下一页
private String prePageUrl; //上一页
private String lastPageUrl; //尾页

public Page(int currentPage, int pageSize, int totalNum, String url) {
super();
this.pageSize = pageSize;
this.totalNum = totalNum;
this.url = url;
totalPage = totalNum/pageSize;
//如果总条数能不被每页条数整除,总页数加1
if (0!=totalNum%pageSize){
totalPage ++;
}

if (currentPage>totalPage) {//当前页大于总页数时,把总页数的值赋给当前页
this.currentPage = totalPage;
}else if (currentPage<1) {//当前页大于小于0时,当前页为赋值为1
this.currentPage = 1;
}else {
this.currentPage = currentPage;
}

}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}

/**
* 设置首页地址
* create on Nov 10, 2011
*/
public void setFirstPageUrl(){
StringBuffer firstUrl = new StringBuffer(url);
firstUrl.append("currentPage=1&pageSize=").append(pageSize);
this.firstPageUrl = firstUrl.toString();
}
/**
* 得到首页地址
* create on Nov 9, 2011
*/
public String getFirstPageUrl(){
setFirstPageUrl();
return this.firstPageUrl;
}

/**
* 设置尾页地址
* create on Nov 10, 2011
*/
public void setLastPageUrl(){
StringBuffer lastUrl = new StringBuffer(url);
lastUrl.append("currentPage=")
.append(totalPage)
.append("&pageSize=")
.append(pageSize);
this.lastPageUrl = lastUrl.toString();
}

/**
* 得到尾页地址
* create on Nov 9, 2011
*/
public String getLastPageUrl(){
setLastPageUrl();
return this.lastPageUrl;
}

/**
* 设置下一页地址
* create on Nov 10, 2011
*/
public void setNextPageUrl(){
StringBuffer nextUrl = new StringBuffer(url);
nextUrl.append("currentPage=")
.append(currentPage+1)
.append("&pageSize=")
.append(pageSize);
this.nextPageUrl = nextUrl.toString();
}

/**
* 得到下一页地址
* create on Nov 9, 2011
*/
public String getNextPageUrl(){
setNextPageUrl();
return this.nextPageUrl;
}

/**
* 设置上一页地址
* create on Nov 10, 2011
*/
public void setPrePageUrl(){
StringBuffer preUrl = new StringBuffer(url);
preUrl.append("currentPage=")
.append(currentPage-1)
.append("&pageSize=")
.append(pageSize);
this.prePageUrl = preUrl.toString();
}

/**
* 得到上一页地址
* create on Nov 9, 2011
*/
public String getPrePageUrl(){
setPrePageUrl();
return this.prePageUrl;
}

}

jsp=========================

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<div align="center">
<c:choose>
<c:when test="${page.currentPage != 1}">
<!-- 当前页不是首页时,首页和上一页为连接 -->
<a href="${page.firstPageUrl}">首页</a>&nbsp;
<a href="${page.prePageUrl}">上一页</a>&nbsp;
</c:when>
<c:otherwise>
<!-- 当前页是首页时,首页和上一页不为连接 -->
首页&nbsp;上一页&nbsp;
</c:otherwise>
</c:choose>

<!-- 当总页数小于5时,全部页数都列出 -->
<c:if test="${page.totalPage<=5 }">
<c:forEach begin="1" end="${page.totalPage}" var="i" step="1">
<c:if test="${page.currentPage==i}">
${i}
</c:if>
<c:if test="${page.currentPage!=i}">
<a href="${page.url}currentPage=${i}&pageSize=${page.pageSize }">[${i}]</a>
</c:if>
</c:forEach>
</c:if>
<!-- 当总页数大于5时,只列5页,分布在当前页前后 -->
<c:if test="${page.totalPage>5 }">

<!-- begin为比当前页小2页的页数, end为比当前页大2页的页数 -->
<c:set var="begin">${page.currentPage-2}</c:set>
<c:set var="end">${page.currentPage+2}</c:set>

<!-- 当前页小于3时,为了使显示页数为5,把显示页的最后一个向后推相应的页数 -->
<c:if test="${begin<1}">
<c:forEach begin="1" end="${end-begin+1}" var="i" step="1">
<c:if test="${page.currentPage==i}">
${i}
</c:if>
<c:if test="${page.currentPage!=i}">
<a href="${page.url}currentPage=${i}&pageSize=${page.pageSize }">[${i}]</a>
</c:if>
</c:forEach>
</c:if>

<!-- 当前页大于和总页数相差小于3时,为了使显示页数为5,把显示页的最前端的页数向前推 -->
<c:if test="${end>page.totalPage}">
<c:forEach begin="${begin-(end-page.totalPage)}" end="${page.totalPage}" var="i" step="1">
<c:if test="${page.currentPage==i}">
${i}
</c:if>
<c:if test="${page.currentPage!=i}">
<a href="${page.url}currentPage=${i}&pageSize=${page.pageSize }">[${i}]</a>
</c:if>
</c:forEach>
</c:if>

<!-- 当前页大于2,且与总页数的差大于2时,显示当前页前2页到当前页后2页的页数 -->
<c:if test="${begin>=1 and end<=page.totalPage}">
<c:forEach begin="${begin}" end="${end}" var="i" step="1">
<c:if test="${page.currentPage==i}">
${i}
</c:if>
<c:if test="${page.currentPage!=i}">
<a href="${page.url}currentPage=${i}&pageSize=${page.pageSize }">[${i}]</a>
</c:if>
</c:forEach>
</c:if>

</c:if>
<!-- 哇哈哈 -->
<c:choose>
<c:when test="${page.currentPage != page.totalPage}">
<!-- 当前页不是尾页时,下一页和尾页为连接 -->
&nbsp;<a href="${page.nextPageUrl}">下一页</a>&nbsp;
<a href="${page.lastPageUrl}">尾页</a>&nbsp;
</c:when>
<c:otherwise>
<!-- 当前页是尾页时,下一页和尾页不为连接 -->
&nbsp;下一页&nbsp;尾页&nbsp;
</c:otherwise>
</c:choose>

共${page.totalNum}条&nbsp;${page.totalPage}页&nbsp;

<!-- 总页数大于5时,显示跳转框 -->
<c:if test="${page.totalPage>5 }">
<form action="${page.url}pageSize=${page.pageSize }" method="post" style="display:inline">
到<input type="text" name="currentPage" onkeyup="this.value=this.value.replace(/[^\d]/g,‘‘)" onafterpaste="this.value=this.value.replace(/[^\d]/g,‘‘)" size="4" maxlength="9" />页<input type="submit" value="跳转">
</form>
</c:if>
</div>

时间: 2024-08-28 22:06:37

java 分页代码的相关文章

Java分页代码的实现

1.定义分页模型:PageModel package com.common.page;     import java.util.List;     /**  * 封装分页信息  * @author Administrator  *  */ public class PageModel<E> {         //结果集      private List<E> list;             //查询记录数      private int totalRecords;   

Java 分页工具

[背景] 最近学习Spring MVC,涉及到分页显示的问题,准备自己整理一个分页工具.由于以前使用Strus框架使用 NewPandaKing 的一个PageBean和Page方法,耦合性比较高,于是优化一下. [优点] 耦合低,使用方便. [缺点] 由于耦合低,不查数据库,所以每次使用List的sublist方法,效率降低. 代码如下: 分页工具类:PageUtil.java /** * Java 分页工具类 */ package com.util; import java.util.Has

java分页组件简单设计(贼简单)

代码很简单,关键是思想. 每个业务模块基本都会涉及到分页的应用,不管是普通的分页浏览还是瀑布流形式的浏览.分页可以减轻服务器的压力,可以节俭页面布局.在我们的分页简单组件设计中,主要是需要返回给客户端四个数据:列表对象.当前页码.每页记录最大条数.记录总数. 列表对象:顾名思义,就是展示给用户看的当前页面记录: 当前页码:主要是需要js来高亮: 每页记录最大条数:一般是服务器设定 记录总数:js用来计算总页数使用 设计思想: 1.由于分页是一种可以公共使用的功能,所以可以开发成一个组件,这样可以

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

java分页大全

////////////////////////////////////////////////////在struts中分页的一种实现//////////////////////////////////////////////////// 在struts中分页的一种实现 我的项目中的分页功能1, 思路 使用一个页面控制类,它记录页面信息,如上页,下页,当前页等.在查询的Action中,将这个控制类和查询条件一起传递给数据库访问bean,然后将这两个参数保存在用户session中.在分页控制Act

年末最代码部分源码大出血分享-freemarker,bootstrap,springdata jpa分页代码

原文:年末最代码部分源码大出血分享-freemarker,bootstrap,springdata jpa分页代码 源代码下载地址:http://www.zuidaima.com/share/1606851189656576.htm 项目截图: eclipse jee Deployment Assembly设置截图: eclipse java build path设置截图: eclipse java compile设置截图: eclipse jee project facets设置截图: ecl

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生成简码和城市编码 2.区域分页查询 n 页面调整 n 服务端实现 3.重构分页代码 n BaseAction n 子类Action 4.分区添加功能 n 什么是分区 n 页面调整(combobox使用) n 服务端实现 2 实现区域导入功能 2.1 jquery OCUpload一键上传插件使用 O

Java静态代码分析工具Infer

Java静态代码分析工具Infer 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Infer介绍 Infer是Facebook最新开源的静态程序分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题.目前Facebook使用此工具分析Facebook的App,包括Android.iOS.Facebook Messenger和Instagram等. Facebook称该工具帮助其每个月检查出应用潜在的数百个Bug,例如一些空指针访问.资源

常用 Java 静态代码分析工具的分析与比较

转载自: http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能.特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中. 引言 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代