一直在寻找一个通用的分页代码,可以集成到DAO的sql语句,hql语句,hibernate分页等等页面只需要简单的加载通用分页jsp就可以,感谢夏哥给我的参考代码
...附上心得。
1.先写通用的分页类,Pagenation.java
public class Pagenation {
//总记录条数
private int rowCount=0;
//总页数
private int pageCount=0;
//当前页数
private int currentpage=1;
//页面显示数目
private int pageSize=10;
//action名称(实现)
private String actionName;
//查询语句
private String sql;
private String hql;
//构造方法
public Pagenation(){
super();
}
//有参构造函数
public Pagenation(int rowCount,int pageCount,int currentpage,int pageSize){
super();
this.currentpage=currentpage;
this.rowCount=rowCount;
this.pageCount=pageCount;
this.pageSize=pageSize;
}
public int getRowCount() {
return rowCount;
}
public void setRowCount(int rowCount) {
this.rowCount = rowCount;
//很好的分页算法.也可以换成可以换成
//this.pageCount=rowCount%this.pageSize==0?rowCount/this.pageSize:rowCount/this.pageSize+1;
this.pageCount=(rowCount+this.pageSize-1)/this.pageSize;
}
//开始记录条数
public Integer getStartRow(){
return (getCurrentpage()-1)*getPageSize();
}
//结束记录条数
public Integer getEndRow(){
return getCurrentpage()*getPageSize();
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getCurrentpage() {
if(currentpage>pageCount)
currentpage=pageCount;
if(currentpage<1)
currentpage=1;
return currentpage;
}
public void setCurrentpage(int currentpage) {
this.currentpage = currentpage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getActionName() {
return actionName;
}
public void setActionName(String actionName) {
this.actionName = actionName;
}
public String getSql() {
return sql;
}
public void setSql(String sql) {
this.sql = sql;
}
public String getHql() {
return hql;
}
public void setHql(String hql) {
this.hql = hql;
}
}
2.在DAO里面引入Pagenation的参数属性,我用的是hibernate自带的分页方法
public List getNewsByPage(Object object, Pagenation pagenation) {
Session session = this.getHibernateTemplate().getSessionFactory()
.openSession();
StringBuffer stringBuffer = new StringBuffer(
" from *** where 1=1");
pagenation.setHql(stringBuffer.toString());
Query query = session.createQuery(stringBuffer.toString());
//初始值
query.setFirstResult(pagenation.getStartRow());
//每页显示的值
query.setMaxResults(pagenation.getPageSize());
List list=query.list();
session.close();
return list;
}
3.Action层利用注入导入Pagenation类,实现action的分页访问
//分页显示出每个栏目的信息, 使用Hibernate分页方法
@SuppressWarnings({ "unchecked", "null" })
public String getByModule() {
module = searchService.getModule(id);
counts=searchService.getCounts(module);
//封装了总记录数,再封装了总条数
pagenation.setRowCount(counts);
//acion的name值,在struts.xml配置
pagenation.setActionName("index2");
list=searchService.getNewsByPage(object,pagenation);
return SUCCESS;
}
4.通用的pagenation.jsp页面,关键的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.t.global.common.Pagenation" %>
<script language="javascript">
function goPage(page){
//给pagenation.currentpage赋值,改变后的值
document.getElementById("currentpage").value=page;
alert("/////"+page);
document.pagenation.submit();
}
</script>
<form action="${pagenation.actionName}.action" name="pagenation" method="post" style="display:none">
<input type="hidden" name="pagenation.rowCount" value="${pagenation.rowCount }"/>
<input type="hidden" name="pagenation.currentpage" id="currentpage" value="${pagenation.currentpage }"/>
<input type="hidden" name="pagenation.actionName" value="pagenation.actionName"/>
<input type="hidden" name="pagenation.sql" value="${pagenation.sql }"/>
<input type="hidden" name="pagenation.hql" value="${pagenation.hql }"/>
</form>
<p>
<a href="#" onclick="goPage(1)" style="cursor: pointer;">首页</a>
<a href="#" onclick="goPage(${pagenation.currentpage-1})" style="cursor: pointer;">上一页</a>
当前第 <font color="red">${pagenation.currentpage }</font> 页
<a href="#" onclick="goPage(${pagenation.currentpage+1})" style="cursor: pointer;">下一页</a>
<a href="#" onclick="goPage(${pagenation.pageCount})" style="cursor: pointer;">末页</a>
跳转到第<select onchange="goPage(this.value)">
<option value="1"></option>
<%
Pagenation pagenation=(Pagenation)request.getAttribute("pagenation");
Integer pageCount=pagenation.getPageCount();
for(int i=1;i<=pageCount;i++){
out.write("<option value=\""+i+"\">"+i+"</option>");
}
%>
</select>页
</p>
5.往你需要的jsp页面嵌入上面的pagenation.jsp页面,一般放在页面的下面
<div style="font-size: 12px" align="center">
<%@include file="pagenation.jsp" %>
</div>
附件有分页的效果,其实,一直想改成1,2,3,4,5,...,10000的分页方式,希望有能改成的留个言,大家共同进步
- 大小: 14.3 KB
分享到:
相关推荐
Java 通用分页详解 Java 通用分页是指在Java编程中对...Java通用分页是一种高效的分页处理方式,可以提高系统性能和效率。通过使用存储过程GetRecordFromPage,我们可以快速地实现分页处理,提高系统性能和用户体验。
总结,Java Web项目中的分页通用实现涉及到数据库查询、参数传递、前后端交互等多个环节。通过封装分页组件,我们可以将这些复杂逻辑模块化,便于在不同的项目中复用,从而提升开发质量和效率。这个DEMO正是为了帮助...
本文将详细探讨"JAVA写的通用分页"这一主题,结合描述中的"通用高效分页存储过程实现",我们将深入理解Java分页的原理、实现方式以及优化策略。 首先,分页的基本概念是将大量数据分块展示,而不是一次性加载所有...
这个"java通用分页代码实例"应该包含了上述概念的实现,你可以通过解压"page"文件查看具体代码,学习如何将这些理论应用到实践中。通过学习和理解这个实例,你可以更好地掌握Java中的分页技术,并将其应用于自己的...
综上所述,Java实现分页通用代码主要包括创建Page对象、处理分页参数、编写分页SQL、填充Page对象及提供相关辅助方法。在实际项目中,这些组件可以抽象成一个通用的分页工具类或者服务,以提高代码复用性和可维护性...
本文将详细探讨Java中的通用分页实现方法。 首先,我们要理解分页的基本概念。分页主要包括两个关键参数:当前页码(Page Number)和每页显示条数(Page Size)。通过这两个参数,我们可以计算出当前页面应该显示的...
本知识点将围绕“Java通用分页”这一主题展开,探讨其核心概念、实现方式以及相关工具。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:当前页码(Page Number)和每页显示的记录数(Page Size)...
本主题主要讲解如何在Struts2中实现一个通用的数字分页功能。 首先,我们要理解分页的基本概念。分页是将大量数据分成若干页进行显示,用户可以通过点击页码或使用导航按钮来切换不同页。分页通常涉及两个关键参数...
本资源提供的"java通用分页含使用文档"是一个jar包,旨在简化Java Web开发中的分页实现过程,避免开发者手动编写繁琐的分页代码。 首先,我们要理解什么是分页。在Web应用中,当数据量过大时,一次性加载所有数据会...
下面,我们将深入探讨一个Java通用分页方法的实现细节,以及如何在实际项目中运用这一技术。 #### 分页类`Pager`详解 `Pager`类是整个分页逻辑的核心。它包含了分页所需的所有属性和方法,如总行数、每页显示的...
通用分页工具类PageInfo.java
在Java开发中,分页是常见的...总之,这个示例展示了如何结合Struts和Hibernate使用自定义标签实现通用的分页功能,它在实际项目中有着广泛的应用。理解并掌握这一技术,能够帮助开发者更有效地管理和展示大量数据。
超级强悍的java web通用分页组件,只要简单的一条sql语句就可以轻松的实现分页,目前对oracle,SQL Server2005,SQL server200,mysql都做了实现,程序通过接口来封装,你可以实现对其他数据库的分页。里面有调用例子...
在这个项目中,"SSM实现通用分页"指的是通过这三个框架来实现数据的分页展示功能,这在大数据量的网页展示中尤为重要,可以有效提升用户体验并减轻服务器压力。 首先,Struts2作为MVC框架,负责处理HTTP请求和响应...
本话题将深入探讨“通用分页实现及其OO设计”,结合给定的“Paginaction.jsp”文件,我们可以进一步了解在Java Web开发中如何有效地实现分页功能。 首先,我们需要理解分页的基本概念。分页是将大量数据分割成多个...
`实现分页的.java`这个项目很可能是实现了这样一个分页插件,使用了JSTL(JavaServer Pages Standard Tag Library)来简化JSP页面的编写。 JSTL是Java Web开发中的一个标准标签库,它提供了多种功能标签,包括核心...
这个源码提供了一个详细的Java分页实现,非常适合Java开发者学习和参考。 在Java中,分页主要涉及到以下几个关键知识点: 1. **SQL查询**:分页的核心是SQL查询语句,通常使用`LIMIT`和`OFFSET`(MySQL)或者`...
`Page(hibernate通用分页).java`可能是`Page`类的具体实现,它可能包含以下属性: 1. 数据列表:存储查询结果的集合。 2. 当前页:当前查询的页码。 3. 每页大小:每一页显示的记录数。 4. 总记录数:数据库中符合...
Mybatis通用分页插件是Java开发中广泛使用的ORM(对象关系映射)框架扩展,主要针对Mybatis进行优化,提供了高效便捷的分页功能。这个插件的目的是简化在数据库查询时的分页操作,使得开发者能够更专注于业务逻辑,...
在这个压缩包文件中,我们可以找到一个基于Java OOP(面向对象编程)实现的通用数据分页示例。 首先,让我们深入理解Java OOP在数据分页中的应用。面向对象编程是Java的核心特性,它提倡将数据和操作数据的方法封装...