一、在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实现分页技术 分页实现实例,分页类
SSH分页技术详解与实例,有注释,能够看懂每一步,若再实际项目中用到,只需根据实际情况更改几处既可
按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。
基于SSH技术实现分页管理信息,代码几乎不用修改,直接能通,方便大家使用
基于SSH的可重用分页技术设计与实现
JAVAEE SSH分页 包含JAR包
主要是三个配置文件 web.xml struts-config.xml applicationContext.xml 数据库是sql2000
ssh框架模板例子代码,hibernate实现简单的分页技术。
本资源主要为基于SSH2的分页查询技术,通过自己的测试,需要修改一些信息,使用HTML的onsubmit事件,.txt文档内从前台到后台的代码都有,是一个例子。
基于struts2+hibernate+spring开发的分页技术,本人自己项目抽出一个模块为例。下载的朋友花半个小时研究下即可模仿使用。
这是一个明了的工程,很简单只需要在你的tomcat服务器上发布就可以应用了,通过这个工程你可以学到目前流行的ssh技术,spring中分页技术。是不错的学习资料!
这个分页技术提供历史最全面的通用分页技术,实现网上的所用的分页格式,里面的代码规范是很严格的还有这个项目去掉了STRUTS2的沉余代码。数据库提供了包括数据脚本。 分页功能:总页数(n页),当前页数(m/n), 首页...
适用于java初学者理解ssh框架,使用Oracle数据库,结合jQuery的ajax技术,实现单表增删改查、条件查询和分页、文件上传
分页,SSH,购物车,mysql 等综合技术的使用,易于理解
本资源是在“ssh框架搭建实例源码1”基础上增加了修改了分页技术,实现数据从数据库中读取,并补充“ssh框架搭建实例源码1”中忘记上传的与分页技术相关的jar包,更新数据库文件ssh.sql。本资源所需的jar包请到“ssh...
针对目前分页查询问题解决方案较为复杂、不易维护的问题,运用JSP自定义标签技术和HQL语言,提出了一个在SSH架构下的解决方案.该方案可有效地使分页面板的显示、处理与JSP页面分离,使用简单,功能完整,并已经成功运用于...
基于java的分页技术,可以用于mvc,ssh,ss,用于企业的ERP技术,个人写的,很有用,可以借鉴
ssh+bootstrap实现用户管理,其功能包括:hibernate实现数据的增删改查,验证码,项目访问路径拦截器,bootstrap的使用,数据分页,以及查询之后的分页。源码下载后,将hibernate.cfg.xml中的用户名以及密码改变,...
本资源是在“ssh框架搭建实例源码2”基础上修改了分页技术,实现项目真正可用的分页技术;实现对基础的dao,service,action操作的提取封装;使命名更规范。本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh...