一、在ArticleDao中添加分页查询的方法:
/**
* 分页查询
* @param hql 查询的条件
* @param offset 开始记录
* @param length 一次查询几条记录
* @return
*/
public List queryForPage(final String hql,final int offset,final int length);
/** *//**
* 查询所有记录数
* @param hql 查询的条件
* @return 总记录数
*/
public int getAllRowCount(String hql);
二、在ArticleDaoImpl中给出相应方法的具体实现:
/**
* 查询所有记录数
*
* @return 总记录数
*/
public int getAllRowCount(String hql) {
return getHibernateTemplate().find(hql).size();
}
/**
* 分页查询
*
* @param hql
* 查询的条件
* @param offset
* 开始记录
* @param length
* 一次查询几条记录
* @return
*/
public List queryForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}
三、在ArticleService中添加方法分页查询的方法:
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int currentPage);
四、在ArticleServiceImpl中给出相应方法的具体实现:
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public PageBean queryForPage(int pageSize,int page){
final String hql = "from Article";
int allRow = articleDao.getAllRowCount(hql);
int totalPage = PageBean.countTotalPage(pageSize, allRow);
final int offset = PageBean.countOffset(pageSize, page);
final int length = pageSize;
final int currentPage = PageBean.countCurrentPage(page);
List<Article> list = articleDao.queryForPage(hql,offset, length); //"一页"的记录
//把分页信息保存到Bean中
PageBean pageBean = new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setCurrentPage(currentPage);
pageBean.setAllRow(allRow);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
return pageBean;
}
最后一步,根据需要,在分页页面上的相应位置进行配置。基本配置如下:
<s:if test="%{pageBean.currentPage == 1}">
<span>首页</span>
<span>上一页</span>
</s:if> <s:else>
首页
[url=...?page=<s:property value=]">上一页[/url]
<span>…</span>
</s:else>
<span class=""><s:property value="pageBean.currentPage" /></span>
<s:if test="%{pageBean.currentPage != pageBean.totalPage}">
<span class="">…</span>
<a href="...?page=<s:property value="%{pageBean.currentPage+1}"/>">下一页
</a>
<a href="...?page=<s:property value="pageBean.totalPage"/>">尾页
</a>
</s:if> <s:else>
<span>下一页</span>
<span>尾页</span>
</s:else>
<span>共<s:property
value="pageBean.allRow" />条记录,<s:property
value="pageBean.totalPage" />页</span></div>
</div>
</div>
至此,网站的分页功能就完成了。
分享到:
相关推荐
SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,它整合了三大主流开源框架,用于构建高效、可维护...掌握这些步骤和相关技术,你就能在SSH框架下成功实现数据的分页显示,提高Web应用的用户体验。
SSH分页技术是Java Web开发中一种常见的数据处理方法,主要应用于大数据量的展示场景,如用户在浏览商品列表或论坛帖子时,通过分页来避免一次性加载所有数据导致的性能问题和用户体验下降。SSH指的是Spring、Struts...
无刷新分页技术是现代网页设计中的一个重要特性,它允许用户在不重新加载整个页面的情况下浏览页面的不同部分。在SSH框架中实现这一功能,通常会用到AJAX(Asynchronous JavaScript and XML)技术。AJAX可以向服务器...
例如,使用JPA的Pageable接口,可以指定当前页、每页大小和排序方式,然后由Repository接口的findAll方法返回Page对象,包含了分页数据和元信息。 三、Hibernate分页 Hibernate提供了Criteria API和HQL(Hibernate...
按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。
【SSH框架整合实现分页详解】 SSH框架整合是企业级应用开发中常用的技术组合,它由Struts2、Spring和Hibernate三个开源框架组成,分别负责表现层、业务逻辑层和服务数据访问层。在这个过程中,实现分页功能是提高...
因此,分页技术应运而生,它能有效地控制每次查询的数据量,提高系统性能和用户体验。 ### 三、Hibernate中的分页实现 #### 1. SQL语句的分页 在MySQL数据库中,可以使用LIMIT关键字实现分页。例如,以下SQL语句...
5. **SSH分页组件**:SSH框架下有多种分页插件可以选择,例如Struts2的DisplayTag、EasyUI的pagination等。这些组件能帮助开发者快速实现分页界面,减少代码量。 6. **源码注释**:提供的源码中应包含详细的注释,...
SSH分页则是指在使用这三个框架开发应用程序时,实现数据展示分页的一种技术手段。 **Struts** 是一个基于MVC设计模式的Web应用框架,主要用于控制视图与模型之间的交互。它提供了一种组织应用逻辑的方式,使得...
通过以上步骤,我们就成功地使用SSH实现了分页功能。这个小项目不仅锻炼了SSH框架的使用,还涵盖了数据库查询、前端展示、事务管理等多个方面的技能,对于初学者来说是一次很好的学习实践。在实际开发中,还可以考虑...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、简洁的开发环境。...这种分页技术在实际的Web应用开发中非常常见,对于处理大量数据的场景尤为重要。
因此,分页技术被广泛采用。在SSH框架下,可以通过在Action类中编写分页逻辑,结合JDBC或Hibernate的查询方法获取分页数据,然后传递给视图层进行展示。分页参数通常包括当前页数、每页记录数等。 3. 校验: 数据...
SSH2分页技术是Web应用开发中常见的功能,主要用于处理大量数据时,提高用户体验和系统性能。SSH2指的是Struts2、Spring和Hibernate三个开源框架的组合,它们各自在MVC(模型-视图-控制器)架构中扮演着重要角色。在...
- 可以考虑使用缓存技术(如Hibernate的二级缓存)来减少对数据库的访问次数,提高性能。 - 对于大量数据,还可以使用懒加载或分页查询优化,避免一次性加载所有数据导致内存溢出。 以上就是SSH框架实现分页功能...
SSH(Struts、Spring、Hibernate)是Java Web开发中常用的一种技术栈,它结合了MVC设计模式,提供了强大的业务层、数据访问层以及控制层的解决方案。在本实例中,我们将深入探讨SSH框架下的分页功能实现。 首先,让...
在处理大量数据时,为了提高用户体验并减轻服务器压力,通常会采用分页技术来显示数据。本篇文章将深入探讨如何在SSH框架中实现简单的数据分页。 首先,让我们了解SSH框架的组成部分: 1. **Struts2**:作为MVC...
1. 使用缓存:如果数据变动不大,可以考虑使用二级缓存或其他缓存技术,减少数据库查询次数。 2. 分页参数校验:对用户输入的页码和每页大小进行校验,防止非法值导致的错误。 3. 异步分页:对于大数据量的分页,...
在IT行业中,SSH整合是指将Spring、Struts和Hibernate这三个开源框架进行集成,以构建高效、灵活的企业级Web应用程序。...通过研究和实践这个项目,开发者可以深入了解SSH框架的整合使用以及分页技术的实现细节。
基于SSH技术实现分页管理信息,代码几乎不用修改,直接能通,方便大家使用