分页技术在Web应用中是必不可少的,同时它也是面试必考的一道题目。因此,对于程序员来说分页技术尤为显得重要。下面我们就分析一下Google的分页技术。
Google分页的索引值计算方法
分析:以下是以显示6个页为参考(Google与百度均是20页)
1 2 3 当前页是1 1 2 3
1 2 3 4 当前页是2 起始值1 未页 4
1 2 3 4 5 当前页是3 起始值1 未页 5
1 2 3 4 5 6 当前页是4 起始值1 未页 6
从以上得知:当前页小于等于4时(nowPage),起始页为1(startIndex), 末页(endIndex)=当前页(nowPage)+2
startIndex=1;
endIndex=nowpage+2;
注意:如果求和值后的endIndex 如果endIndex大于总页数,那么this.endIndex=this.countPage;
java的实现代码如下:
if (this.nowPage <= 4) { //判断小于等于4的情况
this.startIndex = 1;
this.endIndex = this.nowPage + 2;
if(this.endIndex>this.countPage){
this.endindex=this.countpage;
}
}
当大于4时
2 3 4 5 6 7 当前页是5 起始值是2 未页 7
3 4 5 6 7 8 当前页是6 起始值是3 未页 8
4 5 6 7 8 9 当前页是7 起始值是4 未页 9
5 6 7 8 9 10 当前页是8 起始值是5 未页 10
从上图得知 当前页大于4时:
1、当前页与尾页的差少于2,开始页与当前页差3
endindex=nowpage+2;
startindex=nowapge-3;
注意:求和值后的endindex,如果endindex大于总页数
this.endindex=this.countpage;
this.startindex=this.countpage-5;
Java实现代码如下:
if(this.nowpage>4){ //大于4的情况
this.startindex=this.nowpage-3;
this.endindex=this.nowpage+2;
if(this.endindex>this.countpage){
this.endindex=this.countpage;
this.startindex=this.countpage-5;
}
}
整合后的代码如下:
// 计算索引位置
if (this.nowpage <= 4) { //判断小于等于4的情况
this.startindex = 1;
this.endindex = this.nowpage + 2;
if(this.endindex>this.countpage){
this.endindex=this.countpage;
}
}else if(this.nowpage>4){ //大于4的情况
this.startindex=this.nowpage-3;
this.endindex=this.nowpage+2;
if(this.endindex>this.countpage){
if(this.endindex>sumindex){
this.endindex=this.countpage;
this.startindex=this.countpage-5;
else{
this.startindex=1;
this.endindex=this.countpage;
}
}
}
下面我们将它封装在一个Java类中,为以后的使用提供便利,最重要的是它具有通用性。完整的代码如下:
package cn.csdn.util;
import java.util.List;
public class Pagination<T> {
private int nowPage; // 当前页
private int totalPage;
private int totalRecord;
public static final int PAGESIZE = 8;
private final int SHOWPAGE = 6;
private int startPage;
private int endPage;
private List<T> entity;
public Pagination() {
// TODO Auto-generated constructor stub
}
public Pagination(int nowPage, int totalRecord) {
this.nowPage = nowPage;
this.totalRecord = totalRecord;
this.totalPage = this.totalRecord % this.PAGESIZE == 0 ? this.totalRecord
/ this.PAGESIZE
: this.totalRecord / this.PAGESIZE + 1;
// 总页数是否小于4
if (this.totalPage < (this.SHOWPAGE / 2 + 1)) {
this.startPage = 1;
this.endPage = this.totalPage;
} else {
// 总页数大于4的情况
// 当前页的值是否小于等于4
if (this.nowPage <= (this.SHOWPAGE / 2 + 1)) {
this.startPage = 1;
this.endPage = this.nowPage + 2;
if (this.endPage >= this.totalPage) {
this.endPage = this.totalPage;
}
} else {
this.startPage = this.nowPage - 3;
this.endPage = this.nowPage + 2;
if (this.endPage >= this.totalPage) {
this.endPage = this.totalPage;
if (this.totalPage < this.SHOWPAGE) {
this.startPage = 1;
} else {
this.startPage = this.endPage - 5;
}
}
}
}
}
public int getNowPage() {
return nowPage;
}
public void setNowPage(int nowPage) {
this.nowPage = nowPage;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public int getStartPage() {
return startPage;
}
public void setStartPage(int startPage) {
this.startPage = startPage;
}
public int getEndPage() {
return endPage;
}
public void setEndPage(int endPage) {
this.endPage = endPage;
}
public List<T> getEntity() {
return entity;
}
public void setEntity(List<T> entity) {
this.entity = entity;
}
}
看到这相信你对分页技术一定更为熟识,使用起来也更加的得心应手。只要创建Pagination的对象即可把它应用到你的项目中去。最后要感谢CSDN陈红军老师的指导。
分享到:
相关推荐
标题与描述中的“仿百度分页代码 谷歌分页代码”主要涉及的是网站开发中常见的分页功能实现。在大数据量的处理场景下,为了提升用户体验和服务器性能,分页显示数据成为了一种常见且必要的技术手段。本文将详细解析...
通过学习和研究这些示例,你可以更好地理解和应用这些分页技术到自己的项目中。 总的来说,这个压缩包为你提供了一个全面的PHP分页解决方案集合,涵盖了从基础到高级,从静态到动态的各种场景,是提升项目质量的...
在本项目中,我们主要探讨的是如何实现"仿Google分页效果",并结合了表格隔行变色的视觉优化。这个项目的核心在于利用Ajax技术动态加载数据,以模拟Google搜索结果页面的分页功能,同时对展示数据的表格进行美化,...
"asp 数字分页 仿百度分页 仿谷歌分页"这个项目的目标是实现一个与百度和谷歌分页样式类似的分页功能,同时具备数据库连接能力。 首先,我们来看`index.asp`,这是网站的主入口文件,通常包含了整个应用的逻辑控制...
在数据库管理中,分页技术是一项非常重要的功能,它允许用户以较小的数据量逐步加载大量数据,从而提高网页或应用程序的响应速度和用户体验。本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 ...
这个主题,"极限超强百度,谷歌分页方法",涉及到如何高效地处理大量数据并提供用户友好的分页体验。下面将详细介绍这一领域的关键知识点。 首先,分页的目的是为了提高网页加载速度和用户体验。当搜索引擎返回...
总的来说,"仿Google分页"结合AJAX无刷新技术,为用户带来了流畅的浏览体验,同时也降低了服务器的压力。通过合理的数据库设计和后端处理,可以实现快速且有效的数据分页。在实际项目中,开发者还应注意安全性、兼容...
在互联网上,搜索结果往往非常庞大,为了便于用户浏览,搜索引擎如Google采用了分页技术来显示搜索结果。本文将深入探讨“Google分页”这一概念,以及与之相关的知识点。 Google分页是Google搜索引擎的一种展示机制...
首先,理解Google分页的基本概念是至关重要的。它通常包含当前页数、每页显示的记录数以及前进和后退按钮,以便用户能够轻松浏览大量数据。在Spring MVC中,我们可以使用`@RequestMapping`注解来处理HTTP请求,并...
本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...
总结来说,"查询条件保存及Google分页"是一项重要的用户体验优化技术,它涉及到前后端的协作,包括保存用户查询状态、实现动态加载和分页导航。理解并掌握这部分知识,对提升Web应用的性能和用户体验大有裨益。
在IT行业中,分页是一种常见的数据展示方式,特别是在网页应用中,当数据量过大时,为了提高用户体验,避免一次性加载所有数据导致页面响应慢或内存消耗过大,分页技术应运而生。"类似Google的分页"是这种技术的一个...
此外,加入作者提供的QQ群和群号,可以与其他开发者进行技术交流,解决在使用过程中遇到的问题,或者获取更多关于分页和PHP开发的实用技巧。 总之,这个源代码提供了一个基本的PHP分页实现,对于初学者来说是一个很...
接下来,我们将深入讨论分页技术的关键知识点: 1. **分页组件**:前端通常会有一个分页组件,包括页码按钮、每页条数选择、前进/后退箭头等。这些组件需要与后端进行交互,获取相应的数据。 2. **请求参数**:在...
在这个项目中,开发者利用这些技术来构建一个具有高效分页能力的Web应用,以提高用户体验并优化数据库查询性能。 **Struts2** 是一个强大的MVC(Model-View-Controller)框架,它提供了丰富的动作调度、拦截器、...
在这个主题中,我们将深入探讨如何使用Java Server Pages(JSP)技术来实现类似百度或Google的高效、美观的分页功能。这通常涉及到与后端Servlet的交互,以获取并展示所需的数据。 首先,我们需要了解JSP的基本原理...
"java仿GOOGLE数字分页"是针对Java后端开发的一种技术实现,旨在模仿谷歌搜索引擎的分页样式,提供用户友好的分页体验。在这个项目中,开发者不仅关注功能实现,还注重了界面的美观性和用户体验。 首先,我们要理解...
本知识点主要聚焦于Java实现的经典分页技术,结合"不错的Java经典分页"这个主题,我们将深入探讨如何在Java中创建高效的、用户体验良好的分页功能。 首先,"仿谷歌分页"和"放百度分页"这两个标签暗示了我们可能会...
在Java Web开发中,分页是一种常见的功能,用于在大量数据中进行导航,提高用户体验。本主题将深入探讨如何利用pager-taglib库实现...通过理解和实践这些知识点,你能够更好地掌握Java Web分页技术,提升你的开发技能。
"类似google的分页控件"通常指的是采用简洁、高效的分页设计,以提供良好的用户体验。Google的分页样式已经成为了一种典范,以其清晰、直观的设计被广泛应用。 分页控件的主要功能是将大量数据分割成可管理的小部分...