1。 在说之前,我把这简单一词,归类为无脑,也就是不考虑程序运行效率和与数据库交互的数据达到最优。

2. 说到分页肯定就想到hql,sql中的limit<pageNo,pageSize>,no no no 我就随便讲讲用其他的方法来实现分页,不用limit

不多说,看代码:

//获取全记录列表。看到这就知道毫无效率可言,如果取得列表长期不变的话,还可以考虑存入缓存...哈哈
List<DynamicMsg> all_list = DynamicMsgService.getInstance().getTeamMsg(cid);
//工具类分页---原理就是利用List自带一个subList方法,是不是很无语呢?
List<DynamicMsg> ldm = PageHelper.trunListByStart(all_list==null?new ArrayList<DynamicMsg>():all_list , curpage-1 , pageSize);
//这一点不用多说都明白吧,拿size整除pageSize然后验证是否有余数
int totalpage = PageHelper.totalPage(all_list==null? 0 :all_list.size() , pageSize);
//获取全记录列表。看到这就知道毫无效率可言,如果取得列表长期不变的话,还可以考虑存入缓存...哈哈



PageHelper工具类

public class PageHelper {
  // 拿到第几页多少条数据
public static List trunList(List list,int page,int pnum){
int start = (page-1)*pnum;
int end = start+pnum;
if(list.size()>end) return list.subList(start,end);
else if(list.size()>start) return list.subList(start,list.size());
else return list;
}
// 取出自定义条数记录的list
public static List trunListByStart(List list,int start,int end){
if(list==null) return null;
else if(list.size()>end) return list.subList(start,end);
else if(list.size()>start) return list.subList(start,list.size());
else return list;
}
  //总页数public static int totalPage(int total,int pnum){
if (total < pnum)
{
return 1;
}
else
{
return (total/pnum + (total%pnum==0?0:1));
}
}

  //分页 页码
public static int[] getShowPageNum(int totalpage,int pageNo,int showNum){
int[] se=new int[2];
se[0]=0;se[1]=0;
if (totalpage>0 && pageNo>0)
{
int tmpNum = pageNo - showNum / 2;
int start = 1 + tmpNum;
int end = showNum + tmpNum;

if (start < 1) {
end = end + (1 - start);
start = 1;
if (end > totalpage) {
end = totalpage;
}
}
if (end > totalpage) {
start = start - (end - totalpage);
end = totalpage;
if (start < 1) {
start = 1;
}
}
se[0]=start;
se[1]=end;
}
return se;
}
}





JSP页面 页码显示  精髓所在啊....               上一页 ... 2 3 4 5 6 7 8 9 ... 下一页 

<a href="javascript:go(<%=curpage-1%>)" class="a1">上一页</a>
<%
int se[]=PageHelper.getShowPageNum(totalpage,curpage,4);
if(se[0]>1){out.print(" ...");}for(int pi=se[0];pi<=se[1];pi++){if(pi==curpage){out.print(" <a href='javascript:;' class='se'>"+pi+"</a>");}else{out.print(" <a href='javascript:go("+pi+")'>"+pi+"</a>");} }
if(totalpage>se[1]){out.print(" ... ");}%> 
<a href="javascript:go(<%=curpage+1%>)" class="a2">下一页</a>
<script type="text/javascript">
function go(page){
if(page<1){
alert("已到首页");return;
}
if(page><%=totalpage%>){
alert("已到尾页");return;
}
if(<%=curpage%>==page){
alert("当前页即是");return;
}
var url = "/team/team-dynamic.jsp?page="+page;location.href = url;}
</script>




写博客不仅是一种习惯,更是一种沉淀。