Java分页代码(JFIS)

 
TpageList
package jfis.util;
 
import java.util.List;
 
public class TPageList {
        private TPages page = null ;         //分页对象
        private List objectList = null ;    //对象集合
        private String pageStr = "" ;      //分页字符串
       
        public List getObjectList() {
                return objectList ;
        }
        public void setObjectList(List objectList) {
                this . objectList = objectList;
        }
       
        public TPages getPage() {
                return page ;
        }
        public void setPage(TPages page) {
                this . page = page;
                pageStr =page.getLastPageBreak();
        }
        public String getPageStr() {
                return pageStr ;
        }
        public void setPageStr(String pageStr) {
                this . pageStr = pageStr;
        }
 
}
Tpages
package jfis.util;
 
import javax.servlet.http.HttpServletRequest;
 
public class TPages {
        private String fileName = "" ;     
        private int pageSize =2;           //页大小
        private int allPage =1;             //总页数
        private int cPage =1;               //当前页
        private int sPage =1;               //当前页开始记录数
        private int allRecord =1;          //总记录数
        private String lastPageBreak = "" ;   //分页字符串
        private int a ; //分拆list结果集的变量(相当与游标)。可从list中的确定位置开始读数据
       
       
          
//              String bian = request.getParameter("aaa")==null?"0":"5";
//              this.a = new Integer(bian);
       
               
        public int getA() {
                return a ;
        }
 
        public void setA( int a) {
                this . a = a;
        }
 
        public TPages(){
               
        }
       
        public TPages(String fileName,HttpServletRequest request){
               
                this . fileName =fileName;
                //获得当前页
                String cPageStr = request.getParameter( "cpage" )== null ? "1" :request.getParameter( "cpage" );
                this . a = request.getParameter( "aaa" )== null ? 0 : new Integer(request.getParameter( "aaa" ));
                int cPageInt = 0;
                try
                {
                        cPageInt = Integer.parseInt(cPageStr);
                } catch (Exception e){
                        System. out .println( "com.s6.util.Pages = " +e.getMessage());
                        cPageInt = 1;
                } finally {
                        cPage = cPageInt;
                }
        }
       
        // 计算总页数 , 判断当前页的合法性,计算当前页的开始记录数,生成分页字符串
        public void doPage(){
                //计算总页数
                this . allPage =( int )( this . allRecord + this . pageSize -1)/ this . pageSize ;
               
                //判断当前页的合法性
                if ( this . cPage <0){
                        this . cPage =1;
                }
                if ( this . cPage > this . allPage ){
                        this . cPage = this . allPage ;
                }
               
                // 计算当前页开始记录数
                this . sPage =( this . cPage -1)* this . pageSize +1;
               
               
               
                // 生成分页字符串
                StringBuffer str= new StringBuffer();
                // 判断是否有问号
                if ( this . fileName .indexOf( "?" )==-1){
                        this . fileName = this . fileName + "?1=1" ;
                }
               
                str.append( "<table width=/"100%/" height=/"100%/">" );
               
                //添加表单
                str.append( "<form name=/"pagelist/" method=/"post/" action=/"" );
                str.append( this . fileName + "/">" );
               
                str.append( "<tr><td width=/"100%/" height=/"100%/" align=/"right/" valign=/"middle/">" );
               
                str.append( "总纪录数" + this . allRecord + "条" );
                str.append( "&nbsp;" );
                //首页
                if ( this . cPage >1){
                        str.append( "<a href=" + this . fileName + "&cpage=1>首页</a>" );
                } else {
                        str.append( "首页" );
                }
                str.append( "&nbsp;" );
               
                //上一页
                if ( this . cPage >1){
                        str.append( "<a href=" );
                        str.append( this . fileName + "&cpage=" );
                        str.append( this . cPage -1);
                        str.append( "&aaa=" );
                        str.append( this . a -5);
                        str.append( ">上一页</a>" );
                } else {
                        str.append( "上一页" );
                }
                str.append( "&nbsp;" );
               
                //下一页
                if ( this . cPage < this . allPage ){
                        str.append( "<a href=" );
                        str.append( this . fileName + "&cpage=" );
                        str.append( this . cPage +1);
                        str.append( "&aaa=" );
                        str.append( this . a +5);
                        str.append( ">下一页</a>" );
                } else {
                        str.append( "下一页" );
                }
                str.append( "&nbsp;" );
               
                //末页
                if ( this . cPage < this . allPage ){
                        str.append( "<a href=" );
                        str.append( this . fileName + "&cpage=" );
                        str.append( this . allPage );
                        str.append( ">末页</a>" );
                } else {
                        str.append( "末页" );
                }
                str.append( "&nbsp;" );
               
                //第几页
                str.append( "第" );
                str.append( this . cPage );
                str.append( "页" );
                str.append( "&nbsp;" );
               
                //共几页
                str.append( "共" );
                str.append( this . allPage );
                str.append( "页" );
                str.append( "&nbsp;" );
               
                //跳转页
                for ( int i=1;i<= this . allPage ;i++){
                        str.append( "&nbsp;" );
                       
                        if (i== this . cPage ){
                                str.append(i);
                        } else {
                                str.append( "<a href=" );
                                str.append( this . fileName + "&cpage=" );
                                str.append(i);
                                str.append( ">" +i+ "</a>" );
                        }
                }
               
                str.append( "</td></tr></form>" );
                str.append( "</table>" );
               
                lastPageBreak =str.toString();
       
        }
       
               
       
        public int getAllPage() {
                return allPage ;
        }
        public void setAllPage( int allPage) {
                this . allPage = allPage;
        }
        public int getCPage() {
                return cPage ;
        }
        public void setCPage( int page) {
                cPage = page;
        }
        public String getFileName() {
                return fileName ;
        }
        public void setFileName(String fileName) {
                this . fileName = fileName;
        }
        public String getLastPageBreak() {
                return lastPageBreak ;
        }
        public void setLastPageBreak(String lastPageBreak) {
                this . lastPageBreak = lastPageBreak;
        }
        public int getPageSize() {
                return pageSize ;
        }
        public void setPageSize( int pageSize) {
                this . pageSize = pageSize;
        }
        public int getSPage() {
                doPage();
                return sPage ;
        }
        public void setSPage( int page) {
                sPage = page;
        }
        public int getAllRecord() {
                return allRecord ;
        }
        public void setAllRecord( int allRecord) {
                this . allRecord = allRecord;
        }
       
 
}
DAO 里的方法
// 分页
        public TPageList pageSearchlist(TPages pages, List list) {
                TPageList pageList = new TPageList();
                // 记录集总行数
                pages.setAllRecord(list.size());
                // rs 用于保存从 list 中截取的记录
                List rs = new ArrayList();
                // 控制从 list 集合中的第几条开始读取 , 相当于游标
                int a = pages.getA();
                // for 循环中 "5" 代表一次读出多少条数据 :"a" 控制从 list 集合中的第几条开始读取 , 相当于游标。
                for ( int i = 0; i < 5 && a < list.size(); a++) {
                        rs.add(list.get(a));
                        i++;
                }
                Iterator iterator = rs.iterator();
                // 得到分页字符串
                pages.getSPage();
                int i = 0; // 循环变量
                // 判断记录总行数是否大于0,并循环创建USER对象
                if (pages.getAllRecord() > 0) {
                        do {
                                i++;
                        } while (iterator.hasNext() && i < pages.getPageSize());
                        pageList.setPage(pages);
                        pageList.setObjectList(rs);
                }
                return pageList;
        }
Action 里的方法
public ActionForward pageSearchList(ActionMapping mapping, ActionForm form,
                        HttpServletRequest request, HttpServletResponse response) {
 
                TPages pages = new TPages(
                                "/JFIS_CompanyManager/client/outer.do?method=pageSearchList" ,
                                request);
 
                pages.setPageSize(5);
 
                TPageList pageList = iouter .pageSearchlist(pages, iouter .getAllOuter());
                request.setAttribute( "outers" , pageList);
 
                return mapping.findForward( "outer_list" );
 
        }
SSH 分页
说明:分页的两个类不变,只变Action和DAO。
Action
// 分页
        public ActionForward pageSearchList(ActionMapping mapping, ActionForm form,
                        HttpServletRequest request, HttpServletResponse response) {
                Pages pages = new Pages(                         "/JFIS_CompanyManager/client/outer.do?method=pageSearchList" ,request);
                pages.setPageSize(10);
                PageList pageList = iouter .outerList(pages);
                request.setAttribute( "outers" , pageList);
                return mapping.findForward( "outer_list" );
        }
DAO
// 分页
        public PageList outerList(Pages pages) {
                PageList pageList = new PageList();
                List list = new ArrayList();
        /*开启一个HibernateSession对象*/
                Session session = this .getSession();
                Transaction t = session.beginTransaction();
                /* 获得结果集 */
                Query query = session
                                .createQuery( "from jfis.bean.JfisClientItem order by starttime desc" );
                /* 记录集总行数 */
                pages.setAllRecord(query.list().size());
                query.setFirstResult(pages.getSPage() - 1);
                query.setMaxResults(10); /*设置每页显示的记录数*/
                List rs = query.list();
                Iterator iterator = rs.iterator();
                /*得到分页字符串*/
                pages.getSPage();
                int i = 0; /* 循环变量 */
                /* 判断记录总行数是否大于 0 ,并循环创建 USER 对象 */
                if (pages.getAllRecord() > 0) {
                        do {
                                list = rs;
                                i++;
                        } while (iterator.hasNext() && i < pages.getPageSize());
                        pageList.setPage(pages);
                        pageList.setObjectList(list);           
                        t.commit(); /*事务提交*/
                        session.close();
                }
                return pageList;
        }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值