这个是集合分页: package com.wxtl.page;import java.util.ArrayList; import java.util.List;public class PageUtils implements java.io.Serializable { public PageUtils() { } public static List getLimitedList(List origs, int page, int pageSite) { if(origs!=null&&origs.size()>0){ int total = origs.size(); int first = (page - 1) * pageSite; int last = first + pageSite; if(first < 0) first = 0; if(last > total) last = total; if(first > total) return new ArrayList(); else return origs.subList(first, last); }else{ return null; } } }
mysql
第一页
select * from tab limit 0,5查询前五条第二页
select * from tab limit 5,5这是5-10的记录
循环你查询的list,被5整除的时候,改变一次key,就可以了,以后从这个hashmap根据key值取数据就可以相应pegeindex的数据了啊
假设你的list<String>里面有200条数据,每次显示5条那么前台每次传递当前需要显示的页数是第几页为n,后台取出List<String> listNew = list.subList(n-1, 5);
sublist (a,b)是切割从a到b的一个list
(n-1)*5,5*n 对吧
也可以用js前台分割数据。最终思想都是取出全部数据,得出总数,再求出起始记录数。
package com.wxtl.page;import java.util.ArrayList;
import java.util.List;public class PageUtils implements java.io.Serializable
{ public PageUtils()
{
} public static List getLimitedList(List origs, int page, int pageSite)
{
if(origs!=null&&origs.size()>0){
int total = origs.size();
int first = (page - 1) * pageSite;
int last = first + pageSite;
if(first < 0)
first = 0;
if(last > total)
last = total;
if(first > total)
return new ArrayList();
else
return origs.subList(first, last);
}else{
return null;
}
}
}
<td width="800">
<table align="center" width="800">
<tr>
<td width="90%">
<table align="center" width="100%">
<% NewsManager sm = new NewsManager();
NewEntity su[] = sm.getAllNews(); //获得新闻消息///////
// 设置分页代码///////////////////////
int allreg = su.length;
int ipage=20; //分页单位
//-------------设置当前页面-------------
int tpage=0;
String tempstr=request.getParameter("page");
if(tempstr == null)
tpage = 0;
else
tpage = Integer.parseInt(tempstr);
//--------------------------------------------
//------------设置总页面-----------------
int allpage=0;
if(allreg%ipage ==0)
allpage = allreg/ipage;
else
allpage = allreg/ipage+1;
//--------------------------------------
//int pages; //接受的页码变量
int cpage=0; //当前页
int reg = ipage;
int flag = 0;
for(int i=tpage*ipage;i<su.length&®-->0;i++){
%> <tr>
<td align="left" width="70%"><img src="image/arrows/singleright.gif"/><a href="news/One_new.jsp?Id=<%=su[i].getId()%>" target="_self" ><%=su[i].getTiltle()%></a></td>
<td width="20%"><%=su[i].getATime().substring(0,16)%></td>
<td width=""><%=su[i].getAuthor()%></td>
</tr>
<% }
%>
</table>
</td>
<td width="10%" valign="top"><!--插入广告图片等.....-----></td>
</tr>
</table>
</td>
</tr>
<!--网站内容部分-------------------------------->
<tr>
<td width="100%" align="right">
<% String str0 = "",str1="",str2="",str3="",str4="",str5="";
str0="记录总数:"+allreg+" 当前第"+(tpage+1)+"页 共"+allpage+"页 ";
if(tpage==0) str1="<a disabled>首 页</a> ";
else str1="<a href='NewsList.jsp?page=0'>首 页</a> ";
if((tpage-1) >= 0 ) str2="<a href='NewsList.jsp?page="+(tpage-1)+"'>上一页</a> ";
else str2="<a disabled>上一页</a> ";
if((tpage+1)<allpage) str3="<a href='NewsList.jsp?page="+(tpage+1)+"'>下一页</a> ";
else str3="<a disabled>下一页</a> ";
if(allpage==0||(tpage+1)==allpage) str4="<a disabled>未 页</a>";
else str4="<a href='NewsList.jsp?page="+(allpage-1)+"'>末 页</a>";
str5=" 转到第<input type='text' value="+(tpage+1)+" size='2' onchange='jumppage(this.value,"+allpage+")'>页";
%> <font color="#666666" style="font-size:12px;"><%=str0+str1+str2+str3+str4+str5%></font>
</td>
</tr>