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这个变量对应的
[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 "";
}
%>
<%--数字分页形式结束 --%>
下一篇: 三层架构与MVC的区别