日期:2014-05-16  浏览次数:20464 次

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> &q