jsp数字分页类 jdbcTemplate演示

来源:岁月联盟 编辑:exp 时间:2012-08-03


下面第一个文件是pageSupport主要处理各种参数

package net.spring.service;
import java.util.List;
public class pageSupport {
 int pagesize=2;//每页条数
 int totalCount;//总条数
 int curPage;//当前页数
 int pageCount;//总页数
 List datas;//记录集
 public pageSupport(int startpage,int pagesizes,int count){
 
  this.setPagesize(pagesizes);
  this.setTotalCount(count);
  this.pageCount=count/pagesizes+1;
  this.setCurPage(startpage);
 }
 public int getPageCount() {
  return pageCount;
 }
 public void setPageCount(int pageCount) {
  this.pageCount = pageCount;
 }
 public int getPagesize() {
  return pagesize;
 }
 public void setPagesize(int pagesize) {
  this.pagesize = pagesize;
 }
 public int getTotalCount() {
  return totalCount;
 }
 public void setTotalCount(int totalCount) {
  this.totalCount = totalCount;
 }
 public int getCurPage() {
  return curPage;
 }
 public void setCurPage(int curPage) {
  if(curPage<=0)
   curPage=0;
  if(curPage>this.getPageCount())
   curPage=this.getPageCount();
  this.curPage = curPage;
 }
 public List getDatas() {
  return datas;
 }
 public void setDatas(List datas) {
  this.datas = datas;
 }
 
}
 

这是调用方法

调用的时候传入当前的页面http://index.html?page=2  比如这个 传入的是page这参数也就是 startpage这个变量对应的

[html] 
               
 
int startpage=Integer.parseIn(response.Parameter(page)), pagesize=5 
//this.geCount()是一个得到总记录数的函数,自己写。 
pageSupport pSupport=new pageSupport(startpage,pagesize,this.getCount()); 
  String sql="select * from table limit ?,?"; 
  List list=//这里需要自己把数据库记录读出来并返回list形式                                                                               jdbcTemplate.queryForList(sql, 
    new Object[]{(pSupport.getCurPage()-1)*pagesize 
  ,pagesize}); 
  pSupport.setDatas(list); 
[html] view plaincopy
<%--数字分页形式开始 --%> 
<%! 
// @listNum=3;底下 1 2 3 等 
// @thePageUrl:url拼凑字符串.    如:request.getRequestURI()+"?Page="; 
// @pageClass="Page":当页数字CSS类 
// @pageCount:总页数 
// @showPage:当前要显示的页数 
public String getPage(int listNum,String thePageUrl,String pageClass,int pageCount,int showPage) 

String result=""; 
if(pageCount<=listNum) 

   for(int i=1;i<=pageCount;i++) 
   { 
     if(i==showPage) 
     { 
     result=result+"<span class="+pageClass+">"+i+"</span> "; 
     } 
     else 
     { 
     result=result+"<a href="+thePageUrl+i+">["+i+"]</a> "; 
     } 
   } 
   return result; 

else if(pageCount>listNum) 

//这里根据showPage作出相应判断 
int FromListNum; 
if(showPage%listNum!=0) //这里根据求余判断当前页应该在那个分页列表里,如应该在1-5里面还是6-10 
{FromListNum=(showPage/listNum)*listNum+1;} 
else 
{FromListNum=(showPage/listNum)*listNum-listNum+1;} 
   int ToListNum=FromListNum+listNum-1; 
   if(pageCount>=ToListNum) 
   { 
     if(FromListNum!=1) 
     { 
      result=result+"<a href="+thePageUrl+"1 title=首页><FONT face=webdings>9</FONT></a> "; 
        result=result+"<a href="+thePageUrl+(FromListNum-1)+" title=上"+listNum+"页><FONT face=webdings>7</FONT></a> "; 
     } 
     else 
     { 
      result=result+"<FONT face=webdings>9</FONT> "; 
      result=result+"<FONT face=webdings>7</FONT> "; 
     } 
    for(int i=FromListNum;i<=ToListNum;i++) 
    { 
      if(i==showPage) 
      { 
       result=result+"<span class="+pageClass+">"+i+"</span> "; 
      } 
      else 
      { 
       result=result+"<a href="+thePageUrl+i+">["+i+"]</a> "; 
      } 
    } 
    result=result+"<a href="+thePageUrl+(ToListNum+1)+" title=下"+listNum+"页><FONT face=webdings>8</FONT></a> "; 
    result=result+"<a href="+thePageUrl+pageCount+" title=末页><FONT face=webdings>:</FONT></a> "; 
    return result; 
   }else 
   { 
    result=result+"<a href="+thePageUrl+"1 title=首页><FONT face=webdings>9</FONT></a> "; 
    result=result+"<a href="+thePageUrl+(FromListNum-1)+" title=上"+listNum+"页><FONT face=webdings>7</FONT></a> "; 
     for(int i=FromListNum;i<=pageCount;i++) 
     { 
       if(i==showPage) 
       { 
        result=result+"<span class="+pageClass+">"+i+"</span> "; 
       } 
       else 
       { 
        result=result+"<a href="+thePageUrl+i+">["+i+"]</a> "; 
       } 
     } 
   result=result+"<FONT face=webdings>8</FONT> "; 
   result=result+"<FONT face=webdings>:</FONT> "; 
   return result; 
   } 

return ""; 

%> 
<%--数字分页形式结束 --%>