11对分页的详细介绍
来源:互联网 发布:vb九九乘法表 编辑:程序博客网 时间:2024/06/05 08:06
分页几乎是每个网站都会使用到的技术。所以,在这里,我总结一下分页的方法。Pager.jsp页面<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ include file="/common/taglibs.jsp"%><!-- 分页的三个条件:1,需要得到查询表单的name,2,设置两个隐藏域,一个是当前页,一个是每页显示的条数。3,在需要分页的页面引入pager.jsp页面 --><!-- 在该分页的页面当中我们可以看出,分页与对象无关。 --><script type="text/javascript">function jump(p,s){ var oForm = document.searchForm ||document.forms[0]; oForm.elements["pager.currentPage"].value = p;oForm.elements["pager.pageSize"].value = s; oForm.submit(); }</script><table width="70%" style="font-size: 14px;font-family: 微软雅黑;"align="center"><tr><td style="float: left;">第<span style="color: red;"><s:propertyvalue="pager.currentPage" /> </span>/<s:property value="pager.pageCount" />页 共<s:property value="pager.total" />条</td><td style="float: right; "><s:if test="pager.currentPage eq 1"> 首页 上一页 </s:if><s:else><a href="javascript:jump(1,document.getElementById('pSize').value)">首页</a><ahref="javascript:jump(<s:property value="pager.currentPage-1"/>,document.getElementById('pSize').value)">上一页</a></s:else><s:if test="pager.currentPage eq pager.pageCount"> 下一页 末页 </s:if><s:else><ahref="javascript:jump(<s:property value="pager.currentPage+1"/>,document.getElementById('pSize').value)">下一页</a><ahref="javascript:jump(<s:property value="pager.pageCount"/>,document.getElementById('pSize').value)">末页</a></s:else>转到<input type="text" id="pPage" style="width:20px"value="<s:property value="pager.currentPage" />" />页<input type="button" value="跳转"onclick="jump(document.getElementById('pPage').value,document.getElementById('pSize').value)" />每页显示<s:select name="pager.pageSize" list="{3,5,10,15,20,50 }" id="pSize"onchange="jump(1,this.value)"></s:select></td></tr></table>Pager.javapackage com.hfxt.common;import java.util.ArrayList;import java.util.List;public class Pager<T> { // The number of current page size private int currentPage;//当前页 // The number of records in one page private int pageSize;//页面要显示多少条数据 // The total number of records in DB private int total;//数据的总数 // The total number of page private int pageCount;//页面的总数 // The number where we begin to get record private int startRecord; // Whether it has previous page private boolean hasPreviousPage; // Whether it has next page private boolean hasNextPage; // Whether it has only one page private boolean onlyOnePage; // The records of page designed private List<T> pageRecords;//页面数据的集合 public int getCurrentPage() { return currentPage; } /** * 构造方法,只构造空页. */ public Pager() { this(1, 0, 3, new ArrayList()); } /** * 构造方法,只构造空页. */public Pager(int currentPage,int pageSize) {this(currentPage, 0, pageSize, new ArrayList());}/** * 默认构造方法. * * @param start * 本页数据在数据库中的起始位置 * @param totalSize * 数据库中总记录条数 * @param pageSize * 本页容量 * @param data * 本页包含的数据 */public Pager(int currentPage, int totalSize, int pageSize, List data) {this.pageSize = pageSize;this.currentPage = currentPage;this.total = totalSize;this.pageRecords = data;} /** * make sure the page is in the range of the total pages * * @param currentPage * current page */ public void setCurrentPage(int currentPage) { if (currentPage < 1) { this.currentPage = 1; return; } /*if (currentPage > getPageCount()) { this.currentPage = getPageCount(); return; }*/ this.currentPage = currentPage; } /** * get page size * * @return page size number */ public int getPageSize() { return pageSize; } /** * set page size * * @param pageSize * page size number */ public void setPageSize(int pageSize) { if (pageSize <= 0) { this.pageSize = 1; } else { this.pageSize = pageSize; } } /** * get total records * * @return total record's number */ public int getTotal() { return total; } /** * set total records * * @param totalRecords * total record number */ public void setTotal(int totalRecords) { this.total = totalRecords; } /** * Get the total count of the page * * @return count number */ public int getPageCount() { // If there is no data in database. if (total == 0) { pageCount = 1; return pageCount; } boolean isZero = total % pageSize == 0; pageCount = total / pageSize; pageCount = isZero ? pageCount : pageCount + 1; return pageCount; } /** * First record of one page * * @return start records */ public int getStartRecord() { startRecord = ((currentPage - 1) * pageSize); return startRecord; } /** * Whether has previous page * * @return if previous page's is exist,return true else not */ public boolean isHasPreviousPage() { hasPreviousPage = (currentPage == 1) ? false : true; return hasPreviousPage; } /** * Whether has next page * * @return if next page's is exist,return true else not */ public boolean isHasNextPage() { hasNextPage = (currentPage == getPageCount()) ? false : true; return hasNextPage; } /** * Whether is only one page * * @return if only one page,return true else not */ public boolean isOnlyOnePage() { onlyOnePage = ((getPageCount() == 1) ? true : false); return onlyOnePage; } /** * 查询到的所有的记录 * @return the pageRecords */ public List<T> getPageRecords() { return pageRecords; }public void setPageRecords(List<T> pageRecords) {this.pageRecords = pageRecords;}}
- 11对分页的详细介绍
- 对Makefile的详细介绍
- 对OPENGL 的buffer的详细介绍
- 对Python特色的详细介绍
- php 实现分页详细介绍
- python3对MySQL的数据备份的详细介绍
- 一篇对H.323协议介绍比较详细的文章
- 对IE6、IE7、FF兼容性的详细CSS HACK介绍
- Java编程高手对CLASSPATH应用的详细介绍
- 对Thread.interrupt()方法很详细的介绍
- 对Thread.interrupt()方法很详细的介绍
- 对Thread.interrupt()方法很详细的介绍
- 对Thread.interrupt()方法很详细的介绍 中断线程
- (转)对Thread.interrupt()方法很详细的介绍
- 对Thread.interrupt()方法很详细的介绍
- 对Thread.interrupt()方法很详细的介绍
- Winform分页控件使用详细介绍
- Winform分页控件使用详细介绍
- uboot copy_from_nand代码详解
- 编译原理作业有感
- Spring AOP 权限
- I/O test of Sandisk Ultra 16GB Class 10 MiniSDHC on Raspberry Pi
- java.lang.IllegalStateException: getOutputStream() has already been called for this response
- 11对分页的详细介绍
- Linux Socket编程(不限Linux)
- 无线通信领域FPGA的应用分析[转]
- 12各层之间的自定义错误层层递出
- 【Boost】boost库asio详解2——io_service::run函数无任务时退出的问题
- 2011年最新企业offer
- s3c6410 uboot代码分析《二》
- 联想调整组织架构:分为Lenovo和Think两大集团
- 马云对话周星驰:帮别人实现梦想是坚持的理由