jsp分页

  1. Java代码:
  2. package com.zhaipuhong.common.util;   
  3.   
  4. import java.util.ArrayList;   
  5. import org.apache.log4j.Logger;   
  6. import javax.servlet.http.HttpServletRequest;   
  7.   
  8. public class PageBean {   
  9.   private static Logger logger = Logger.getLogger(PageBean.class);   
  10.   
  11.   /**  
  12.    * 对查询数据封装  
  13.    */  
  14.   private ArrayList objList = new ArrayList();   
  15.   /**  
  16.    * 页面记录大小  
  17.    */  
  18.   private int pageSize = 10;   
  19.   /**  
  20.    * 总行数  
  21.    */  
  22.   private int rowcnt;   
  23.   /**  
  24.    * 当前页码  
  25.    */  
  26.   private int currentPage;   
  27.   /**  
  28.    * 分页信息  
  29.    */  
  30.   private String pageInfo;   
  31.   
  32.   /**  
  33.    * 获得当前页  
  34.    * @return  
  35.    */  
  36.   public int getCurrentPage() {   
  37.     return currentPage;   
  38.   }   
  39.   /**  
  40.    * 设置当前页  
  41.    * @param currentPage  
  42.    */  
  43.   public void setCurrentPage(int currentPage) {   
  44.     this.currentPage = currentPage;   
  45.   }   
  46.   /**  
  47.    * 得到页面大小  
  48.    * @return  
  49.    */  
  50.   public int getPageSize() {   
  51.     return pageSize;   
  52.   }   
  53.   
  54.   /**  
  55.    * 设置页面大小  
  56.    * @param pageSize  
  57.    */  
  58.   public void setPageSize(int pageSize) {   
  59.     this.pageSize = pageSize;   
  60.   }   
  61.   
  62.   /**  
  63.    * 得到数据  
  64.    * @return  
  65.    */  
  66.   public ArrayList getObjList() {   
  67.     return objList;   
  68.   }   
  69.   /**  
  70.    * 设置数据  
  71.    * @param objList  
  72.    */  
  73.   public void setObjList(ArrayList objList) {   
  74.     this.objList = objList;   
  75.   }   
  76.   /**  
  77.    * 设置页面信息  
  78.    * @param pageInfo  
  79.    */  
  80.   public void setPageInfo(String pageInfo) {   
  81.     this.pageInfo = pageInfo;   
  82.   }   
  83.   
  84.   /**  
  85.    * 实现下拉框数字翻页  
  86.    * @param pageNum 当前页号  
  87.    * @param lastPageNum 总的页号  
  88.    * @return  
  89.    */  
  90.   private String getSelect(int pageNum, int lastPageNum) {   
  91.     String select = "跳到<select name=temp οnchange=/"prePage(this.value)/">";   
  92.     select = select + "<option value=" + pageNum + ">" + pageNum + "</option>";   
  93.     for (int i = 1; i <= lastPageNum; i++) {   
  94.       if (i != pageNum) {   
  95.         select = select + "<option value=" + i + ">" + i + "</option>";   
  96.       }   
  97.     }   
  98.     select = select + "</select>页";   
  99.     return select;   
  100.   }   
  101.   
  102.   /**  
  103.    * 获取翻页信息  
  104.    * @param req  
  105.    * @return  
  106.    */  
  107.   public String getPageInfo() {   
  108.     int previousPageNum = currentPage - 1;   
  109.     int nextPageNum = currentPage + 1;   
  110.     int pageCount = rowcnt % this.pageSize;   
  111.     if (pageCount == 0) {   
  112.       pageCount = rowcnt / pageSize;   
  113.     }   
  114.     else {   
  115.       pageCount = rowcnt / pageSize + 1;   
  116.     }   
  117.   
  118.     if (pageCount < 1) {   
  119.       pageCount = 1;   
  120.     }   
  121.     pageInfo = "当前第<font color=/"red/">" + currentPage +   
  122.         "</font>页&nbsp&nbsp共<font color=/"red/">" + pageCount +   
  123.         "</font>页&nbsp&nbsp";   
  124.     String first = "<a href =/"#/" οnclick=/"prePage('" + 1 +   
  125.         "')/">首页&nbsp</a>";   
  126.     String previous = "<a href =/"#/" οnclick=/"prePage('" + previousPageNum +   
  127.         "')/">前一页&nbsp</a>";   
  128.     String next = "<a href =/"#/" οnclick=/"prePage('" + nextPageNum +   
  129.         "')/">下一页&nbsp</a>";   
  130.     String last = "<a href =/"#/" οnclick=/"prePage('" + pageCount +   
  131.         "')/">末页</a>";   
  132.     if (currentPage != 1) {   
  133.       pageInfo = pageInfo.concat(first).concat(previous);   
  134.     }   
  135.     if (currentPage != pageCount) {   
  136.       pageInfo = pageInfo.concat(next).concat(last);   
  137.     }   
  138.     pageInfo = pageInfo + getSelect(currentPage, pageCount);   
  139.     pageInfo += " <input name=/"pagenum/" type=/"hidden/">/r/n";   
  140.     String script = "<script>/r/n";   
  141.     script += "function prePage(pageNum){/r/n"// document.all["pageNum"].value=pageNum;   
  142.     script += "document.all[/"pagenum/"].value=pageNum;/r/n";   
  143.     script += "document.forms[0].submit();/r/n";   
  144.     script += "}/r/n";   
  145.     script += "</script>";   
  146.     pageInfo = pageInfo + script;   
  147.     return pageInfo == null ? "" : pageInfo;   
  148.   }   
  149.   
  150.   /**  
  151.    * 设置当前页码  
  152.    * @param httpServletRequest  
  153.    */  
  154.   public void setPageNum(HttpServletRequest httpServletRequest) {   
  155.     String pageNum = httpServletRequest.getParameter("pagenum");   
  156.     try {   
  157.       this.setCurrentPage(Integer.parseInt(pageNum));   
  158.     }   
  159.     catch (Exception ex) {   
  160.       this.setCurrentPage(1);   
  161.     }   
  162.   }   
  163.   /**  
  164.    * 得到总行数  
  165.    * @return  
  166.    */  
  167.   public int getRowcnt() {   
  168.   
  169.     return rowcnt;   
  170.   }   
  171.   
  172.   /**  
  173.    * 设置总行数  
  174.    * @param rowcnt  
  175.    */  
  176.   public void setRowcnt(int rowcnt) {   
  177.     this.rowcnt = rowcnt;   
  178.   }   
  179. }  

 

java query:

  1. ……   
  2. ArrayList list = new ArrayList();   
  3. AA a= null;   
  4. ResultSet rs = null;   
  5. try{   
  6.     ……   
  7.     String sqlCnt = "select count(1) as cnt from (" + sqlStatement.toString() + ")";   
  8.     String sql = "select * "  
  9.                + "from (select temp.*, rownum serialno "  
  10.                      + "from (" + sqlStatement.toString() + ") temp) page "  
  11.                + "where page.serialno between " + (pageBean.getPageSize()*(pageBean.getCurrentPage() - 1) + 1)   
  12.                      + " and " + pageBean.getPageSize()*pageBean.getCurrentPage();   
  13.     rs = this.stmt.executeQuery(sqlCnt);   
  14.     if(rs.next()){   
  15.         pageBean.setRowcnt(rs.getInt("cnt"));   
  16.     }   
  17.     rs.close();   
  18.   
  19.     rs = this.stmt.executeQuery(sql);   
  20.     while(rs.next()){   
  21.         a = new AA();   
  22.         a.setID(rs.getInt("ID"));   
  23.         a.setName(rs.getString("name"));   
  24.   
  25.         list.add(a);   
  26.     }   
  27.     ……   
  28.     pageBean.setObjList(policyList);  

 

页面代码:

  1. <html:form action="/xxxxAction">   
  2.     <table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#7FA9E3">   
  3.         <tr>   
  4.             <td bgcolor="#FFFFFF" class="box_flow_t">查询结果</td>   
  5.         </tr>   
  6.         <tr>   
  7.             <td height="186" valign="top" id="box_flow_m21">   
  8.         <table width="100%" border="1" align="center" cellpadding="2" cellspacing="0">   
  9.                       <tr>   
  10.                           <td height="26"><div align="center"><strong>编号</strong></div>   
  11.                           </td>   
  12.                           <td><div align="center"><strong>名称</strong></div>   
  13.                           </td>   
  14.                        </tr>   
  15.             <logic:present name="pageBean">   
  16.             <logic:iterate id="a"  name="pageBean" property="objList" scope="request">   
  17.             <tr>   
  18.                               <td width="12%">&nbsp;<bean:write name="a" property="ID"/>   
  19.                               </td>   
  20.                               <td width="14%">&nbsp;<bean:write name="a" property="Name"/>   
  21.                               </td>   
  22.               </tr>   
  23.            </logic:iterate>   
  24.                
  25.           </table>             
  26.     <table width="100%" height="34" border="0" align="center" cellpadding="2" cellspacing="0">   
  27.               <tr>   
  28.                 <td height="34"><div align="left"><bean:write name="pageBean" property="pageInfo" filter="false"/></div></td>   
  29.               </tr>   
  30.             </table>   
  31.   </logic:present></td>   
  32.     </tr>   
  33.   <html:hidden property="action"/>  //这里是个逻辑跳转变量   
  34.     </table>   
  35. ……   
  36. </html:form>  

 

  1. action代码:
    • ……   
    • PageBean pageBean = new PageBean();   
    • pageBean.setPageNum(request);   
    • business.getPolicyList(xxx, pageBean);//xx是假定的参数   
    • request.setAttribute("pageBean", pageBean);   
    •   
    • form.setAction("xxxx"); //注意因为是分页,下一次还是这action逻辑   
    •   
    • return actionMapping.findForward("xxxx"); //跳转到分页显示页面   
    •    ……  

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值