4、业务层Service
package com.linbs.usermanage.service;
import java.util.List;
import com.linbs.core.common.exception.BusinessException;
import com.linbs.usermanage.model.Placard;
public interface PlacardService {
//取得查询条件下的公告数量
int getPlacardLength(Placard placard);
//分页查询公告
List<Placard> getPlacardByPage(int startIndex , int length, Placard placardExample);
}
5、业务层Service实现类
package com.linbs.usermanage.service.impl;
import java.util.List;
import org.hibernate.HibernateException;
import com.linbs.core.common.exception.BusinessException;
import com.linbs.core.common.hibernate.BaseHibernateDAO;
import com.linbs.core.common.hibernate.BaseHibernateService;
import com.linbs.core.common.hibernate.HibernateCallBack;
import com.linbs.core.common.hibernate.HibernateProxy;
import com.linbs.usermanage.dao.PlacardDAO;
import com.linbs.usermanage.dao.impl.PlacardDAOImpl;
import com.linbs.usermanage.model.Placard;
import com.linbs.usermanage.service.PlacardService;
public class PlacardServiceImpl extends BaseHibernateService implements
PlacardService {
private PlacardDAO placardDAO = new PlacardDAOImpl();
public List<Placard> getPlacardByPage(final int startIndex , final int length, final Placard placardExample){
HibernateCallBack callBack = new HibernateCallBack(){
public Object execute()throws HibernateException{
return placardDAO.getPlacardByPage(startIndex, length, placardExample);
}
};
return (List<Placard>)new HibernateProxy().run(callBack);
}
public int getPlacardLength(final Placard placard){
HibernateCallBack callBack = new HibernateCallBack(){
public Object execute()throws HibernateException{
return new Integer(placardDAO.getPlacardLength(placard));
}
};
return (Integer)new HibernateProxy().run(callBack);
}
}
6、Page类
package com.linbs.usermanage.page;
public class Page {
/* 当前页号 */
private int currentPage = 1;
/* 总页数 */
private int totalPage;
/* 是否有上一页 */
private boolean hasPrePage = false;
/* 是否有下一页 */
private boolean hasNextPage = true;
/* 当前页记录开始索引 */
private int startIndex;
/* 记录总数 */
private int totalRows;
/* 每页记录数默认为10 */
private int pageSize = 12;
/* 页号记录 */
private int[] pages;
public Page() {
}
public Page(int totalRows,int pageSize) {
this.totalRows = totalRows;
setPageSize(pageSize);
if (totalRows % pageSize == 0) {
totalPage = totalRows / pageSize;
} else {
totalPage = totalRows / pageSize + 1;
}
pages = new int[totalPage];
for (int i = 0; i < totalPage; i++) {
pages[i] = i + 1;
}
if (totalPage == 1||totalPage == 0) {
hasPrePage = false;
hasNextPage = false;
}
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public boolean isHasPrePage() {
return hasPrePage;
}
public void setHasPrePage(boolean hasPrePage) {
this.hasPrePage = hasPrePage;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = (pageSize==0)?12:pageSize;
}
public int[] getPages() {
return pages;
}
public void setPages(int[] pages) {
this.pages = pages;
}
/**
* 返回到第一页
*/
public void first() {
if(totalPage!=0)currentPage = 1;
startIndex = 0;
// 如果总记录数不足一页,则该页行数为记录数
if(currentPage>1){
hasPrePage = true;
}else{
hasPrePage = false;
}
if(currentPage<totalPage){
hasNextPage = true;
}else{
hasNextPage = false;
}
if (totalRows < pageSize)
pageSize = totalRows;
}
/**
* 上一页
*/
public void previous() {
if (currentPage == 1) {
return;
}
// 设置第一页的hasPrePage;
--currentPage;
if(currentPage>1){
hasPrePage = true;
}else{
hasPrePage = false;
}
if(currentPage<totalPage){
hasNextPage = true;
}else{
hasNextPage = false;
}
startIndex = (currentPage - 1) * pageSize;
}
/**
* 下一页
*/
public void next() {
if (currentPage < totalPage) {
++currentPage;
}
// 设置新的页面的行数
if(currentPage>1){
hasPrePage = true;
}else{
hasPrePage = false;
}
if(currentPage<totalPage){
hasNextPage = true;
}else{
hasNextPage = false;
}
startIndex = (currentPage - 1) * pageSize;
if(currentPage == totalPage)pageSize = totalRows - startIndex;
}
/**
* 最后一页
*/
public void last() {
currentPage = totalPage;
if(currentPage>1){
hasPrePage = true;
}else{
hasPrePage = false;
}
if(currentPage<totalPage){
hasNextPage = true;
}else{
hasNextPage = false;
}
startIndex = (currentPage - 1) * pageSize;
pageSize = totalRows - startIndex;
}
/**
* 更新页面
*/
public void refresh(int currentPage) {
this.currentPage = currentPage;
if(currentPage>1){
hasPrePage = true;
}else{
hasPrePage = false;
}
if(currentPage<totalPage){
hasNextPage = true;
}else{
hasNextPage = false;
}
if ((totalRows - startIndex) < pageSize)
pageSize = totalRows - startIndex;
if (currentPage > totalPage) {
last();
}
}
}
分享到:
相关推荐
在这个“struts+spring+hibernate+dwr+分页例子”中,我们将深入探讨这四个框架的集成以及分页功能的实现。 1. **Struts**: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。它主要负责处理...
【标题】:“影院信息查询(java+jsp+hibernate+dwr框架+分页技术+ajax+oracle)”是一个综合性的Web应用项目,它利用了一系列先进的技术和工具来实现对影院信息的高效、交互式查询。这个项目的核心在于,它展示了...
《整合Hibernate、Spring与DWR实现超强分页功能详解》 在现代Web开发中,提供高效、用户体验良好的分页功能是必不可少的。本教程将深入探讨如何利用Hibernate作为持久层框架,Spring作为应用层框架,以及Direct Web...
Struts新闻管理系统是一款基于Java技术开发的Web应用,它整合了Hibernate对象关系映射框架和Direct Web Remoting (DWR) 技术,为用户提供了一种高效、灵活的方式来管理和发布新闻内容。在这个系统中,Struts作为MVC...
4. **前端交互**:在HTML页面中,使用JavaScript(可能是jQuery或其他库)处理用户点击分页链接的事件,调用DWR映射的JavaScript函数,传入当前页码和每页大小。 5. **展示数据**:接收到服务器返回的分页数据后,...
在文件"PageDivision"中,可能包含了SSH框架的配置文件(如struts.xml、spring.xml、hibernate.cfg.xml)、Java源代码(如Controller、Service、DAO类)、DWR配置文件(dwr.xml)、以及相关的HTML和JavaScript文件。...
1. **前端设计**:使用HTML和JavaScript构建分页界面,DWR提供API来发送Ajax请求。 2. **后端处理**:Struts Action接收到请求后,根据请求参数(如当前页码和每页记录数)调用Spring管理的Service层方法。 3. **...
3. DWR (Direct Web Remoting):DWR 是一个JavaScript库,允许JavaScript代码直接调用服务器端的Java方法,实现AJAX(Asynchronous JavaScript and XML)通信。这使得页面无需刷新就能更新数据,提升用户体验。在...
### dwr+hibernate实现的分页技术详解 在当今快速发展的互联网环境中,网站和应用程序需要处理大量的数据。为了提高用户体验并优化服务器资源利用,分页技术成为了必不可少的一部分。本文将详细介绍如何通过结合dwr...
【标题】"dwr+struts+hibernate+jquery tomcat日志查询系统"是一个基于Web的应用程序,主要用于实时、高效地查询Tomcat服务器的日志内容,并且具备分页功能,提供良好的用户体验。这个系统整合了多个技术框架,下面...
通过SSH框架,可以利用Hibernate的Criteria或HQL查询实现数据的分页获取,同时在前端使用DWR调用服务器端的方法,获取指定页码的数据,动态加载到页面上,提供流畅的用户体验。 2. **AJAX页面无刷新**:DWR的核心...
1. **SSH+jQuery+DWR+EasyUI 实战**:本文档通过一系列的实战案例展示了如何将 Struts2、Spring3、Hibernate4 与 DWR、jquery2.x 和 easyUI1.3.x 结合起来开发实际的应用。 2. **实战案例详解**: - SSH 架构集成...
在本文中,我们将深入探讨如何实现一个基于ExtJS和Direct Web Remoting (DWR)的带分页、分组及后台排序功能的Grid组件。这个功能整合了多种技术,包括ExtJS、DWR、Spring和Hibernate,以创建一个高效且灵活的数据...
- DWR集成:配置DWR的`dwr.xml`文件,暴露Java方法供JavaScript调用,可能包括获取分页数据的接口。 - 页面前端:使用JavaScript调用DWR暴露的方法,动态加载分页数据,更新UI。 - 事务管理:Spring的事务管理器确保...
关键JS代码已经加入注释,方便理解. 数据库结构比较简单,可以参照hibernate映射文件自己创建数据库,也可以使用文件下的sql脚本生成数据库. IDE:myeclipse 6.0.1 数据库: sqlserver2000
本压缩包文件包含的类文件主要用于实现DWR与Hibernate结合进行数据分页的功能。下面我们将详细探讨这些知识点。 首先,DWR是一种JavaScript库,它允许在客户端的JavaScript代码和服务器端的Java代码之间进行实时的...
在本篇博文中,我们将深入探讨如何利用DWR(Direct Web Remoting)、Hibernate和Spring框架来实现一个高效的分页功能。这些技术都是Java Web开发中的关键组件,它们各自扮演着不同的角色,共同构建出强大的后端系统...
4. **JavaScript分页UI**: - 创建一个用户友好的分页界面,通常包括“上一页”、“下一页”按钮,页码选择器等元素。 - 使用JavaScript监听这些元素的事件,当用户交互时,通过DWR调用服务器端的分页方法,动态...
在"Displaytag dwr 分页"的应用中,Hibernate 可能被用来从数据库中检索和操作数据,这些数据随后通过Spring管理的Bean传递给DWR,由DWR进一步传递给前端的Displaytag表格进行展示和分页。 Maven 是一个项目管理和...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行交互,实现了AJAX(Asynchronous JavaScript and XML)的功能,无需页面刷新即可更新部分网页内容。在这个项目中,"dwr无刷新分页...