jsp数字分页类 jdbcTemplate演示

下面第一个文件是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这个变量对应的
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);<%--数字分页形式开始 --%><%!// @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 "";}%><%--数字分页形式结束 --%>