`

Java 翻页工具类

    博客分类:
  • Java
阅读更多

@RequestMapping(value = "list.action")
public String list(HttpServletRequest request, HttpServletResponse response) {
	int _pageSize = 20;//每页显示数量
	int _totalRecord = cmsArticleSer.countText();//总记录数
	int _currentPage = 1;//当前页码
	PageUtil page = new PageUtil();
	// 当前页码
	if (request.getParameter("pageNo") != null && !request.getParameter("pageNo").equals("")) {
		_currentPage = Integer.parseInt(request.getParameter("pageNo"));
	}
	page.setPageSize(_pageSize);// 每页显示的记录数量
	page.setTotalRecord(_totalRecord);// 总记录数
	page.setCurrentPage(_currentPage);// 当前页码
	cu.setStart(page.getStart());//开始记录数
	cu.setLimit(page.getPageSize());//一次提取多少条记录
	List<Test> list = getTestList(cu);
	request.setAttribute("list", list);
	this.setPage(page, request);
	return "cms/list";
}

public void setPage(PageUtil page, HttpServletRequest request) {
	// 每页显示的记录数量
	request.setAttribute("pageSize", page.getPageSize());
	// 总记录数
	request.setAttribute("totalRecord", page.getTotalRecord());
	// 当前页码
	request.setAttribute("currentPage", page.getCurrentPage());
	// 总页数
	request.setAttribute("totalPage", page.getTotalPage());
	// 当前页开始记录
	request.setAttribute("currentStartRecord", page.getCurrentStartRecord());
	// 当前页结束记录
	request.setAttribute("currentEndRecord", page.getCurrentEndRecord());
	// 向上翻页页码
	request.setAttribute("upPage", page.getUpPage());
	// 向下翻页页码
	request.setAttribute("downPage", page.getDownPage());
}

//数据库操作
@SuppressWarnings("unchecked")
public List<Test> getTestList(TestUtil cu) {
	List<Test> list = new ArrayList<CmsArticle>();
	StringBuffer sb = new StringBuffer();
	try {
		sb.append("from Test ");
		Query query = this.getSession().createQuery(sb.toString());
		query.setFirstResult(cu.getStart());
		query.setMaxResults(cu.getLimit());
		list = query.list();
	} catch (Exception e) {
		System.out.println(e);
	}
	return list;
}


/**
 * 翻页类 1.首先设置 每页显示的记录数量 2.再次设置 总记录数 3.最后设置 当前页码
 * 
 * @author Administrator
 */
public class PageUtil {

	private int pageSize;// 每页显示的记录数量
	private int totalRecord;// 总记录数
	private int currentPage;// 当前页码
	// ***********************************************
	private int totalPage;// 总页数
	private int currentStartRecord;// 当前页开始记录
	private int currentEndRecord; // 当前页结束记录
	private int start;// 开始记录
	private int end;// 结束记录
	private int upPage;// 向上翻页页码
	private int downPage;// 向下翻页页码

	public int getPageSize() {
		return pageSize;
	}

	/**
	 * 设置每页显示的记录数量
	 * 
	 * @param pageSize
	 */
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalRecord() {
		return totalRecord;
	}

	/**
	 * 设置总记录数
	 */
	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
		// 设置总页数
		int _totalPage = 1;
		if (getTotalRecord() % getPageSize() == 0) {
			// 如果总记录数除以每页显示条数可以整除,商就是总页码
			_totalPage = this.getTotalRecord() / this.getPageSize();
		} else {
			// 如果总记录数除以每页显示条数不能整除,商加1才是总页码
			_totalPage = this.getTotalRecord() / this.getPageSize() + 1;
		}
		if (_totalPage < 1) {
			_totalPage = 1;
		}
		this.setTotalPage(_totalPage);
	}

	public int getCurrentPage() {
		return currentPage;
	}

	/**
	 * 设置页码
	 */
	public void setCurrentPage(int currentPage) {
		if (currentPage > this.getTotalPage()) {
			this.currentPage = this.getTotalPage();
		} else {
			this.currentPage = currentPage;
		}
		// 设置当前页开始记录
		int _currentStartRecord = 0;
		if (this.getTotalRecord() != 0) {
			_currentStartRecord = (this.getCurrentPage() - 1)
					* this.getPageSize() + 1;
		}
		if (_currentStartRecord < 0) {
			_currentStartRecord = 0;
		}
		this.setCurrentStartRecord(_currentStartRecord);
		// 设置当前页结束记录
		int _currentEndRecord = this.getCurrentPage() * this.getPageSize();
		if (_currentEndRecord > this.getTotalRecord()) {
			_currentEndRecord = this.getTotalRecord();
		}
		this.setCurrentEndRecord(_currentEndRecord);
		// 开始记录
		int _start = (this.getCurrentPage() - 1) * this.getPageSize();
		if (_start < 0) {
			_start = 0;
		}
		this.setStart(_start);
		// 结束记录
		int _end = this.getCurrentPage() * this.getPageSize();
		if (_end > this.getTotalRecord()) {
			_end = this.getTotalRecord();
		}
		this.setEnd(_end);
		// 向上翻页页码
		int _upPage = this.getCurrentPage() - 1;
		if (_upPage < 1) {
			_upPage = 1;
		}
		this.setUpPage(_upPage);
		// 向下翻页页码
		int _downPage = this.getCurrentPage() + 1;
		if (_downPage > this.getTotalPage()) {
			_downPage = this.getTotalPage();
		}
		this.setDownPage(_downPage);
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public int getCurrentStartRecord() {
		return currentStartRecord;
	}

	public void setCurrentStartRecord(int currentStartRecord) {
		this.currentStartRecord = currentStartRecord;
	}

	public int getCurrentEndRecord() {
		return currentEndRecord;
	}

	public void setCurrentEndRecord(int currentEndRecord) {
		this.currentEndRecord = currentEndRecord;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getEnd() {
		return end;
	}

	public void setEnd(int end) {
		this.end = end;
	}

	public int getUpPage() {
		return upPage;
	}

	public void setUpPage(int upPage) {
		this.upPage = upPage;
	}

	public int getDownPage() {
		return downPage;
	}

	public void setDownPage(int downPage) {
		this.downPage = downPage;
	}

}


jsp页面
<table width="93%" height="39" border="0" align="center"cellpadding="0" cellspacing="0" class="title_bg">
	<tr>
		<td>
			<form id="qbmh_list_form" name="qbmh_list_form" method="post" action="list2.action">
				<c:if test="${currentPage == '1'}">
					首页
				</c:if>
				<c:if test="${currentPage != '1'}">
					<a href="javascript: gotoPage('1')">首页</a>
					<a href="javascript: gotoPage('${upPage}')">上一页</a> 
				</c:if>
				第<input name="pageNo" id="pageNo" type="text" class="testpage" value="${currentPage}" />页
				共${totalRecord}条记录
				每页${pageSize}条记录
				共${totalPage}页
				第${currentStartRecord}条—第${currentEndRecord}条 记录
				<c:if test="${currentPage != totalPage}">
					<a href="javascript: gotoPage('${downPage}')">下一页<a href="javascript: gotoPage('${totalPage}')">尾页</a>
				</c:if>
				<c:if test="${currentPage == totalPage}">
					尾页
				</c:if>
			</form>
		</td>
	</tr>
</table>


<script type="text/javascript" language="javascript">
//键盘捕捉
function document.onkeydown(){
	//回车
	if(event.keyCode == '13'){
		var _pageNo = document.getElementById("pageNo").value;
		gotoPage(_pageNo);
	}
}
//翻页
function gotoPage(pageNo){
	var re = /^[1-9]\d*$/;
	if (!re.test(pageNo)) {
		pageNo="1";
	}
	document.getElementById("pageNo").value=pageNo;
	document.getElementById("qbmh_list_form").submit();
}
</script>
分享到:
评论

相关推荐

    通用的jsp翻页工具类

    ### 通用的JSP翻页工具类解析 在Web开发中,为了提高用户体验及服务器性能,数据分页是一项常见的技术需求。特别是在展示大量数据时,合理的分页处理能有效提升应用性能并改善用户界面的友好性。本文将详细介绍一个...

    java分页工具类

    本篇文章将详细探讨Java中的分页工具类及其核心实现原理。 首先,我们要理解什么是分页。分页是一种将大量数据分割成若干小部分(页)来展示的技术,每一页包含一定数量的数据,用户可以通过翻页来查看更多的记录。...

    java分页工具类[非常简洁好用]

    Java分页工具类是开发中常见的一种实用工具,主要用于处理大量数据时的分页显示,以提高用户体验并减轻服务器压力。在Java世界里,我们通常会遇到如MyBatis、Hibernate等ORM框架,它们虽然提供了分页功能,但在某些...

    java分页,翻页类PageTab源码

    PageTab类就是为实现这一功能而设计的一个翻页工具类。它包含了上一页、下一页、跳转页、首页和尾页等操作,便于开发者在不同场景下进行灵活的数据展示。 首先,我们来理解一下分页的基本概念。分页是将大数据集...

    java 使用ITextRenderer将html模块生成pdf文件工具类

    接下来,我们创建一个Java工具类来实现HTML转PDF的功能。首先,定义一个方法,接受HTML字符串作为输入,然后使用ITextRenderer生成PDF: ```java import org.xhtmlrenderer.pdf.ITextRenderer; import java.io....

    android版自动翻页工具

    在Android平台上,自动翻页工具是一种能够模拟用户手动翻页动作的应用程序,它通常用于自动化测试,特别是对于阅读类应用或者电子书籍应用的性能、稳定性和用户体验的验证。本项目标题为“android版自动翻页工具”,...

    ZPL基础及与Java系统的集成使用

    4. **多页顺序打印**:实现ZPL的翻页功能,可以利用多个^XZ和^XA组合,每个^XZ代表一个标签的结束,^XA则开启新的标签。通过Java程序控制发送ZPL指令的顺序,确保标签按预期顺序打印。 5. **处理错误和异常**:在...

    java语言的分页查询功能(mysql和sql server)

    1. JDBC基础:Java标准API中的JDBC(Java Database Connectivity)提供了与数据库交互的接口和类。通过`Statement`或`PreparedStatement`对象执行SQL语句,并使用`ResultSet`对象获取结果。 2. 分页查询SQL构造:...

    EPUB 解析 (java)

    为了实现这样的模块,开发者通常会使用Java的ZipFile类来处理ZIP压缩包,使用JAXB或DOM4J来解析XML,使用Jsoup或类似的库来处理HTML内容。同时,可能会使用线程池来并发处理文件,提高整体解析速度。 总的来说,...

    utils_java_page_usjz9_

    在Java编程领域,工具类(Utils)是程序员为了提高代码复用性和简化代码而创建的一类特殊类。这些类通常包含一系列静态方法,用于执行特定的任务。在这个名为"utils_java_page_usjz9_"的压缩包中,我们可以推测它...

    java日历有界面

    5. **日历视图**: 为了显示月份和年份,开发者可能使用了Java中的Calendar类或java.time包中的类,如YearMonth,来处理日期计算和展示。同时,为了实现上下翻页,需要编写对应的事件处理器,监听用户的翻页操作并...

    java页面查询结果分页

    ### Java页面查询结果分页知识点解析 在进行数据库操作时,数据量往往非常庞大,将所有数据一次性加载到前端展示不仅会加重服务器负担,降低用户体验,还可能导致浏览器卡顿甚至崩溃。因此,分页技术成为了处理大...

    java逻辑分页

    考虑到标签中提到的"源码"和"工具",博主可能分享了一段Java代码(PageHandle.java)作为示例,展示如何编写一个处理分页逻辑的类或方法。 首先,我们来看看逻辑分页的基本流程。当用户请求某一页时,应用程序会计...

    android pdf 的翻页效果

    在Android平台上实现PDF的翻页效果是一项常见的任务,特别是在开发阅读类应用时。这个话题涉及到多个技术点,包括PDF解析、动画渲染以及用户交互。以下是对这个主题的详细阐述: 1. **PDF解析**:首先,我们需要一...

    SSH翻页项目 插件

    MyPagination可能是该项目中的核心类或模块,它可能包含了翻页的核心逻辑,如计算每页的记录数、处理翻页请求、以及与数据库的交互等。这个类可能会有如下的方法: 1. `getPageCount()`: 计算总的页数,通常基于总...

    java实现pdf预览

    在项目中,你可以选择一个适合的PDF库,结合Java GUI框架(如Swing或JavaFX),构建一个用户友好的界面,提供翻页、缩放等基本操作。同时,注意性能优化和安全性的考量,以提供流畅且安全的PDF预览体验。

    java的pdf阅读器

    Java作为一种跨平台的编程语言,提供了多种库和工具来处理PDF文件。 在您提供的描述中,提到了一个简单的流程来运行这个Java PDF阅读器项目: 1. **下载并解压文件**:首先,你需要下载这个压缩包,然后将其解压缩...

    手机java电子书阅读器

    可以使用Java中的Graphics类进行绘图操作,实现自定义的阅读界面效果。 四、电子书格式支持 电子书格式多样,如EPUB、PDF、MOBI等。对于Java阅读器,最常见的是支持TXT和JAR格式,因为它们轻量级且易于处理。开发者...

    mbatis自动产生分页

    首先,MyBatis Generator (MBG) 是一个工具,它能够自动生成MyBatis的Mapper接口、XML映射文件以及对应的Java实体类。这大大减少了手动编写这些代码的工作量。MBG支持多种数据库,包括MySQL、Oracle等,并且可以通过...

    仿Iphone风格翻页控件,源码及Jar包.rar

    综上所述,这个资源为Java开发者提供了一个可以快速实现类似iPhone翻页效果的工具,通过源码和Jar包,开发者不仅可以直接使用,还可以学习和定制,以满足特定项目的需要。在实际应用中,它可以提升应用的用户界面...

Global site tag (gtag.js) - Google Analytics