OA项目 分页功能总结一 简单的分页(资料来源于传智播客汤阳光的视频教程)
2014-11-21 16:59
489 查看
1.在domain包中新建一个PageBean类
其主要的属性有:
//已知
private int currentPage //当前页
private int pageSize //每页数据条数,默认为10条
//需要查询数据库的
private int recodCount //总记录数
private List recordList //当前页所需要的数据列表
//计算
private int pageCount //总页面数
private int startPageIndex; // 页码显示的起始页
private int endPageIndex; //页码显示的结束页
public PageBean(int currentPage,int pageSize,List recordList,int recordCount){
pageCount=(recordCount+pageSize-1)/pageSize;
if(pageCount<10){
startPageIndex=1;
endPageIndex=pageCount;
}
else{
startPageIndex=currentPage-4;
endPageIndex=currentPage+5;
if( startPageIndex<1){
startPageIndex=1;
endPageIndex=10;
}
if(endPageIndex>pageCount){endPageIndex=pageCount;startPageIndex=pageCount-9;}
}
}
生成相应的set和get方法,这里省略。。。。
以下代码段的pagebean类的内容是我做项目的代码,和上面不一定完全相同
2.在config包中新建一个Configuration类,用来设置和得到每页的记录数pageSize,默认是10条
Public Class Configuration(){
}
3.在相应的Action(如:UserAction)中,修改原先在list方法中的内容,改为:
private int pageNum;
生成相应的seter,geter方法,这里省略。。。
PageBean pageBean=userService.getPageBean(pageNum,user);
ActionContext.getContext.put("pageBean",pageBean);
4.在Service和ServiceImpl中生成以下方法并实现它:
public PageBean getPageBean(int pageNum){
int currentPage=pageNum;
int pageSize=Configuration.getPageSize();
//查询
List recordList=getSession.createQuery(//
"from User u ")//
.setFirstResults((currentPage-1)*pageSize)//
.setMaxResults(pageSize)//
.list();
int recordCount=getSession.createQuery(//
"select count(*) from User u ").list();
return new PageBean(currentPage,pageSize,recordList,recordCount);
}
5.在相应的页面中插入以下的名称:
如
6.运行,简单的分页即可完成
由于这只是简单的分页功能,在之后我会持续更新分页功能的改进,以实现更加复杂的业务逻辑需求,敬请关注!!!
其主要的属性有:
//已知
private int currentPage //当前页
private int pageSize //每页数据条数,默认为10条
//需要查询数据库的
private int recodCount //总记录数
private List recordList //当前页所需要的数据列表
//计算
private int pageCount //总页面数
private int startPageIndex; // 页码显示的起始页
private int endPageIndex; //页码显示的结束页
public PageBean(int currentPage,int pageSize,List recordList,int recordCount){
pageCount=(recordCount+pageSize-1)/pageSize;
if(pageCount<10){
startPageIndex=1;
endPageIndex=pageCount;
}
else{
startPageIndex=currentPage-4;
endPageIndex=currentPage+5;
if( startPageIndex<1){
startPageIndex=1;
endPageIndex=10;
}
if(endPageIndex>pageCount){endPageIndex=pageCount;startPageIndex=pageCount-9;}
}
}
生成相应的set和get方法,这里省略。。。。
以下代码段的pagebean类的内容是我做项目的代码,和上面不一定完全相同
package cn.itcast.oa.domain; import java.util.List; public class PageBean { //查询 private int recordCount; //总记录数 private List recordList; //本页数据列表 //传递的参数 private int currentPage; //当前页 private int pageSize; //当前页记录数 //计算 private int pageCount; //总页数 private int beginPageIndex;//开始的页面索引 private int endPageIndex;//结束的页面索引 public PageBean(int currentPage, int pageSize, List recordList,int recordCount) { this.currentPage = currentPage; this.pageSize = pageSize; this.recordList=recordList; this.recordCount=recordCount; //计算 pageCount=(recordCount+pageSize-1)/pageSize; if(pageCount<10){ beginPageIndex=1; endPageIndex=pageCount; } else{ beginPageIndex=currentPage-4; endPageIndex=currentPage+5; if(beginPageIndex<1){ beginPageIndex=1; endPageIndex=10; } else if(endPageIndex>pageCount){ endPageIndex=pageCount; beginPageIndex=pageCount-9; } } } public int getRecordCount() { return recordCount; } public void setRecordCount(int recordCount) { this.recordCount = recordCount; } public List getRecordList() { return recordList; } public void setRecordList(List recordList) { this.recordList = recordList; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getBeginPageIndex() { return beginPageIndex; } public void setBeginPageIndex(int beginPageIndex) { this.beginPageIndex = beginPageIndex; } public int getEndPageIndex() { return endPageIndex; } public void setEndPageIndex(int endPageIndex) { this.endPageIndex = endPageIndex; } }
2.在config包中新建一个Configuration类,用来设置和得到每页的记录数pageSize,默认是10条
Public Class Configuration(){
private static int pageSize; static { pageSize=10; } public static int getPageSize(){ return pageSize; }
}
3.在相应的Action(如:UserAction)中,修改原先在list方法中的内容,改为:
private int pageNum;
生成相应的seter,geter方法,这里省略。。。
PageBean pageBean=userService.getPageBean(pageNum,user);
ActionContext.getContext.put("pageBean",pageBean);
4.在Service和ServiceImpl中生成以下方法并实现它:
public PageBean getPageBean(int pageNum){
int currentPage=pageNum;
int pageSize=Configuration.getPageSize();
//查询
List recordList=getSession.createQuery(//
"from User u ")//
.setFirstResults((currentPage-1)*pageSize)//
.setMaxResults(pageSize)//
.list();
int recordCount=getSession.createQuery(//
"select count(*) from User u ").list();
return new PageBean(currentPage,pageSize,recordList,recordCount);
}
5.在相应的页面中插入以下的名称:
如
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <div id=PageSelectorBar> <div id=PageSelectorMemo> 页次:${currentPage}/${pageCount}页 每页显示:${pageSize }条 总记录数:${recordCount }条 </div> <div id=PageSelectorSelectorArea> <a href="javascript: gotoPage(1)" title="首页" style="cursor: hand;"> <img src="${pageContext.request.contextPath}/style/blue/images/pageSelector/firstPage.png"/> </a> <s:iterator begin="%{beginPageIndex}" end="%{endPageIndex}" var="num"> <s:if test="currentPage == #num"><%-- 当前页 --%> <span class="PageSelectorNum PageSelectorSelected">${num}</span> </s:if> <s:else><%-- 非当前页 --%> <span class="PageSelectorNum" style="cursor: hand;" onClick="gotoPage(${num});">${num}</span> </s:else> </s:iterator> <a href="javascript: gotoPage(${pageCount})" title="尾页" style="cursor: hand;"> <img src="${pageContext.request.contextPath}/style/blue/images/pageSelector/lastPage.png"/> </a> 转到: <select id="pn" onchange="gotoPage(this.value)"> <s:iterator begin="1" end="%{pageCount}" var="num"> <option value="${num}">${num}</option> </s:iterator> </select> <script type="text/javascript"> // 回显页码 $("#pn").val(${currentPage}); </script> <script type="text/javascript"> function gotoPage( pageNum ){ //window.location.href = "forumAction_show.action?id=${id}&pageNum=" + pageNum; $(document.forms[0]).append("<input name='pageNum' type='hidden' value='"+pageNum+"' />"); document.forms[0].pageNum.value=pageNum; document.forms[0].submit(); } </script> </div> </div> <!-- <script type="text/javascript"> function gotoPage( pageNum ){ window.location.href = "forumAction_show.action?id=${id}&pageNum=" + pageNum; /* $(document.forms[0]).append("<input type='hidden' name='pageNum' value='" + pageNum + "'/>"); document.forms[0].submit(); // 提交表单 */ } </script> -->
6.运行,简单的分页即可完成
由于这只是简单的分页功能,在之后我会持续更新分页功能的改进,以实现更加复杂的业务逻辑需求,敬请关注!!!
相关文章推荐
- OA项目 分页功能总结二 实现较为复杂的分页功能(资料来源于传智播客汤阳光的视频教程)
- 16_传智播客Spring2.5视频教程_使用CGLIB实现AOP功能与AOP概念解释
- 方正BPM工作流基础级培训视频教程(各功能组件+小型项目开发)
- 个人笔记(孔浩Maven视频教程)——03.在Eclipse中建立简单的项目
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能
- Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]
- Gmail视频教程-01 简单功能流程介绍
- jsp、js分页功能的简单总结
- 传智播客--OA的岗位管理功能模块的实现总结
- Android视频播放项目总结之 适配器绑定视频信息列表显示到界面(适配器简单优化)
- OA中总结:s:select,关于使用modelDriven,项目分层,@Transactional,jspf,各个层上配置注解交给spring管理的方法,简单的OGNL表达式写法
- 酷播云视频列表功能教程,简单实现视频列表连播
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 2
- 传智播客JAVA培训OA视频回顾总结
- halcon11 halcon11.0.1 全功能完美无限制版本带视频教程/中文全功能 最全资料
- 传智播客_OA工作流视频教程
- React Native实战项目企业通信录(含视频教程)- 登录功能实现
- React Native 学习资料,教程,项目实践,视频
- Android开发视频教程之二十七(项目功能分析)
- 《传智播客:2.3/spring/jdbc/EJB3.0/ajax/hibernate/Struts/java视频教程》(SPRING2.5/AJAX/JAVA/JNI/FTP/AJAX/ibatis/OA/JDBC)