`

java分页器

 
阅读更多

转载自:java分页代码+css样式

 

下面是我自己修改的,将它写成一个工具类:

 

public class PageUtils {

	public static final long EDIT_VIDEO_RECORD_NUMBER_PER_PAGE = 1;// 后台编辑视频页面一页最多显示的记录数
	public static final long EDIT_VIDEO_BAR_TERM_NUMBER = 10;// 后台编辑视频的分页条的显示多少个阿拉佰数字让用户点

	// 分页
	/**
	 * 获取分页条 显示样式(1/4页)首页上一页1234下一页尾页
	 * 
	 * @param totalNum
	 *            记录数量
	 * @param currentPage
	 *            当前页
	 * @param pageNumPerPage
	 *            每页显示记录数
	 * @param barTermNum
	 *            如"首页上一页1234下一页尾页"这里有只显示出1-4页,barTermNum就是四,可见的的分页项下标数
	 * @param param	除当前页数与每页的记录数以后的参数
	 * @return
	 */
	public static String getPageBar(long totalNum, long currentPage,
			long pageNumPerPage, long barTermNum , String param) {
		StringBuffer sb = new StringBuffer();
		
		long pageCount = 0; // 页数
	
		if(pageNumPerPage < 1){
			return null;
		}

		sb.append("<input id=\"page\" name=\"page\" type=\"hidden\" />");
		sb.append("<input id=\"pageNum\" name=\"pageNum\" type=\"hidden\" />");
		
		String[] parametter;
		if(param != null){//传进来的参数也加进去
			parametter = param.split("&");
			
			for (String eachParam : parametter) {
				if(parametter == null){
					continue;
				}
				String[] keyValue = eachParam.split("=");
				if(keyValue != null && keyValue.length == 2){
					sb.append("<input id=\""+ keyValue[0] + "\" name=\"" + keyValue[0] + "\" value=\"" + keyValue[1]+ "\" type=\"hidden\" />");
				}
			}
		}
		
		
		sb.append("<script>" + "function fenye(i,j){"
				+ " document.getElementById('page').value = i;"
				+ " document.getElementById('pageNum').value = j;"
				+ " for(var i=0;;i++){"
				+ "  if(document.forms[i].page != null){"
				+ "    document.forms[i].submit();" + "    break;" + "  }"
				+ " }" + "}" 
				+ " function goPage(j){pn = document.getElementById('go_page_number').value;fenye(pn,j);}"
				+ "</script>");
		
		// 计算分页总数
		pageCount = totalNum / pageNumPerPage + (totalNum % pageNumPerPage == 0 ? 0 : 1);
		// 当前页出局,跳转到首页
		if (currentPage < 1) {
			currentPage = 1;
		}
		else if(currentPage > pageCount){//尾页
			currentPage = pageCount;
		}

		// 显示形如:(1/4页)
		sb.append("<span>(" + currentPage + "/" + pageCount + "页)</span>");

		// 显示-首页
		if (currentPage >= 1) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('1','"
					+ pageNumPerPage + "');\">首页</a>");
		}

		// 显示-上一页
		if (currentPage == 1) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('1','"
					+ pageNumPerPage + "');\">上一页</a>");
		} else {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
					+ (currentPage - 1) + "','" + pageNumPerPage + "');\">上一页</a>");
		}
		
		// 显示-1234
		long half = barTermNum / 2;//为了让点击的页码尽量显示在中间
		long i = currentPage - half > 0 ? currentPage - half : 1;
		
		for (int j = 1; j <= barTermNum && i <= pageCount; i++, j++) {
			
			if (currentPage == i) {//使用on显示当前所处的页码
				sb.append("<a class=\"on\" href=\"javascript:void(0);\" onclick=\"fenye('"
								+ i + "','" + pageNumPerPage + "');\" >" + i + "</a>");
			} else {
				sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
						+ i + "','" + pageNumPerPage + "');\">" + i + "</a>");
			}
		}
		
		// 显示-下一页
		if (pageCount <= 1) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('1','"
					+ pageNumPerPage + "');\">下一页</a>");
		} else if (currentPage == pageCount) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
					+ (pageCount) + "','" + pageNumPerPage + "');\">下一页</a>");
		} else {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
					+ (currentPage + 1) + "','" + pageNumPerPage + "');\">下一页</a>");
		}
		// 显示-尾页
		if (pageCount <= 1) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('1','"
					+ pageNumPerPage + "');\">尾页</a>");
		} else if (currentPage == pageCount) {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
					+ (pageCount) + "','" + pageNumPerPage + "');\">尾页</a>");
		} else {
			sb.append("<a href=\"javascript:void(0);\" onclick=\"fenye('"
					+ (pageCount) + "','" + pageNumPerPage + "');\">尾页</a>");
		}
		
		sb.append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;转<input type='text' size='2' name='go_page_number' id='go_page_number'/>页");
		sb.append("<input type='button' value='GO' onclick=\"goPage('" + pageNumPerPage + "');\"/>");
		
		return sb.toString();
	}

	public static void main(String[] argv) {
		// 测试数据,实际使用时,使用数据库查出总记录数total,当前页currentPage是从页面传过来的变量值
		long total = 100;
		long currentPage = 1;
		String pageBar = PageUtils.getPageBar(total, currentPage,
				PageUtils.EDIT_VIDEO_RECORD_NUMBER_PER_PAGE,//可以分离在常量类里
				PageUtils.EDIT_VIDEO_BAR_TERM_NUMBER,null);
		
		System.out.println(pageBar);
	}
}
 

 

 

css还是用转载的文章,我自己不怎么会css和js

 

.page {
 clear:both;
 padding:10px 0;
 line-height:19px;
 height:19px;
}
.page span,.page a {
 float:left;
 margin-left:5px;
 color:#666;
}
.page .lis {
 float:right;
}
.page a {
 border:1px solid #cccccc;
 padding:0px 7px;
}
.page .on {
 background:#c30101;
 color:#fff;
 border:1px solid #c30101;
}

 这个与servlet分开,很好地应用到自己的controllor类

 

分享到:
评论

相关推荐

    JAVA分页大全.txt

    根据提供的文件信息,我们可以深入探讨Java分页技术的相关知识点,特别是Struts框架中的分页实现。下面将详细介绍分页的基本概念、Struts框架中的分页处理方式以及如何使用自定义的`PageController`类来实现分页功能...

    实用java分页标签

    Java分页标签是Java Web开发中的一个重要概念,它主要用于处理大量数据的展示,尤其是在数据库查询结果需要在网页上以多页形式呈现时。这个技术可以让用户更方便地浏览和导航大量的信息,而不会一次性加载所有数据...

    java 分页demo

    Java分页是数据库查询中非常常见的一种技术,用于在大量数据中有效地展示和导航。在Web应用程序开发中,尤其是在处理用户界面时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢或者内存压力过大。这...

    java 数据分页显示

    在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...

    java 分页思想

    Java分页思想是Java开发中一个重要的概念,特别是在处理大数据量时,为了提高用户体验和系统性能,分页技术显得尤为重要。本资料包提供了一个详细的Java分页实现文档,包括代码示例、数据库设计以及相关图解,帮助...

    java分页web实现

    Java分页技术是Web开发中的一个关键组成部分,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页显得尤为重要。本教程将详细讲解如何在Java环境下实现Web应用的分页功能,并提供一个测试数据库供学习者参考...

    JAVA分页控件

    本篇文章将详细解析标题为"JAVA分页控件"的相关知识点,并以提供的两个文件`PageControllerAjax.java`和`PageController.java`为背景进行讨论。 首先,分页控件的核心功能是展示数据集的一部分,而不是一次性加载...

    java分页技术汇总

    本资料汇总了多种Java分页技术,涵盖了Struts框架下的实现方式,对于Java Web开发者来说极具参考价值。 1. **JSP分页**: JSP可以通过内置的`&lt;c:forEach&gt;`标签配合`pageContext`对象进行简单的分页。`pageContext`...

    Java 分页实例

    本文将通过一个具体的Java分页实例,讲解如何在三大框架(未指定具体框架,这里默认为Spring MVC、MyBatis和Struts等常见框架)中实现分页,并提供相关源码作为参考。 首先,我们来看MySQL与传统Servlet结合的分页...

    java web 分页管理器

    Java Web分页管理器是一种用于处理大量数据分页显示的技术,尤其在与微软数据库如SQL Server配合使用时,能够高效地提升用户体验。在Web应用程序中,分页是必不可少的功能,尤其是在展示诸如用户列表、订单历史或者...

    用java 实现分页

    例如,使用Spring MVC或RESTful API设计,控制器层将PageResult对象转换为JSON,前端使用JavaScript库(如jQuery、Vue.js或React)解析JSON并显示分页信息。 5. **优化与注意事项** - 为了避免多次查询数据库,...

    java万能分页代码

    4. **Controller层处理**:在Java Web应用中,通常在控制器层(如Spring MVC的Controller)接收前端传来的页码和每页大小,然后调用Service层的方法进行分页查询。 5. **Service层实现**:服务层根据Controller传递...

    java分页之假分页实现简单的分页器

    `Pager`类提供了静态方法`create`用于创建分页器实例,接收一个数据列表和每页的大小作为参数。此外,`getPagedList`方法根据指定的页码返回分页后的数据。 假分页的核心在于,它并不在数据库查询时限制返回的行数...

    Java分页大全下载zip版

    Java分页技术是Web开发中的一个关键组成部分,尤其是在处理大数据量时,为了提高用户体验和系统性能,分页显得尤为重要。本资源"Java分页大全"集合了多种分页实现方式和最佳实践,对于Java Web开发者来说是一份宝贵...

    java页面分页

    在Java开发中,"页面分页"是一种常见的需求,特别是在处理大数据量的查询时,为了提高用户体验和系统性能,我们通常会将数据分页展示。本文将深入探讨Java后台实现分页的关键知识点,并以提供的文件名为例进行讲解。...

    java分页 动态代理 aop实现

    本话题主要围绕"Java分页"、"动态代理"以及"AOP(面向切面编程)"在Spring框架中的实现进行详细讲解。 首先,我们来看"Java分页"。在处理大量数据时,一次性加载所有数据不仅会消耗大量的内存,也可能导致用户界面...

    Java _ JSP分页Demo

    本示例"Java _ JSP分页Demo"显然关注的是如何在这样的环境中实现数据的分页显示。分页是大数据量展示时常用的一种优化手段,它可以提高用户体验,避免一次性加载过多数据导致页面响应变慢或内存资源过度消耗。 首先...

    JSP JAVA 分页显示动态数据(源代码)

    在这个项目中,"JSP、JAVA分页显示动态数据"的源代码可能包含了以下组件: - 数据访问对象(DAO):包含执行SQL查询和处理结果集的方法。 - 控制器(Controller):处理HTTP请求,调用DAO方法,处理分页参数,并将...

    java分页插件

    Java分页插件是Java开发中非常实用的一个工具,它能帮助开发者在处理大量数据时进行高效的分页显示,提高应用程序的性能。本压缩包包含了分页插件的jar包和Maven项目的代码示例,方便开发者快速理解和应用。下面我们...

    hbase java api 访问 查询、分页

    在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...

Global site tag (gtag.js) - Google Analytics