版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24606505/article/details/78390359
1、要实现分页,则需要获取3样东西:总页数、当前所在页、页面要显示的list。
2、后台数据获取与处理(这里的话是获取的服务器传来的json数据):
String page = request.getParameter("page");
if(page==null){
page="1";
}
String pagesize = request.getParameter("pagesize");
if(pagesize==null){
pagesize="6";
}
int total = (Integer) obj.get("Total");
int nowpage,totalpagecount;//当前在哪一页和总页数
//计算总页数,判断总新闻条数是否为6的倍数,如果是,则总页数为总数除以6,否则是相除取整+1
if(total%6==0){
totalpagecount=total/6;
}else{
totalpagecount = total/6+1;
}
System.out.println(totalpagecount);
nowpage = Integer.valueOf(page);
List<News> newslist=new ArrayList<News>();
for(int i=0;i<json.size();i++){
JSONObject rows=json.getJSONObject(i);
News news=(News)rows.toBean(rows, News.class);
newslist.add(news);
}
request.setAttribute("list", newslist);
request.setAttribute("totalpagecount", totalpagecount);//返回总页数
request.setAttribute("nowpage", nowpage);//返回当前所在页
RequestDispatcher rd = request.getRequestDispatcher("./index/news.jsp");
rd.forward(request, response);
3:jsp页面的分页显示:
<div class="nextpage">
<c:if test="${nowpage==1 }">
<span class="pre">已到首页</span>
</c:if>
<c:if test="${nowpage!=1 }">
<span class="pre bbb"><a href="../getNews?page=${nowpage-1 }">上一页</a></span>
</c:if>
<c:forEach var="i" begin="1" end="${totalpagecount}" varStatus="listCount">
<c:if test="${nowpage==listCount.count }">
<a class="nowpagecolor">${listCount.count }</a>
</c:if>
<c:if test="${nowpage!=listCount.count }">
<a href="../getNews?page=${listCount.count }">${listCount.count }</a>
</c:if>
</c:forEach>
<c:if test="${nowpage==totalpagecount }">
<span class="pre">已到尾页</span>
</c:if>
<c:if test="${nowpage!=totalpagecount }">
<span class="pre"><a href="../getNews?page=${nowpage+1 }">下一页</a></span>
</c:if>
</div>
页面上基本是根据当前页判断是否为首页或者尾页,并就行相应的css显示处理,如果要做页面跳转的功能,添加个form提交表单就好了。后台数据处理的方式有多种,看接口怎么返回数据了,如果是直接取数据库中的数据,可以使用limit控制取的个数和取得页面。