分页重要代码:
</form>
<ul class="classlist">
<%
request.setCharacterEncoding("utf-8");
String type=request.getParameter("type");
//接收title
String title=request.getParameter("title");
if(type==null){
type="ntitle";
}
if(title==null){
title="";//相当于查询全部
}
//破碎重组
/* title=new String(title.getBytes("iso-8859-1"),"utf-8"); */
NewsDao nd=new NewsDao();
//分页
int pageindex=1;
int pagesize=5;
//接收pid
String pid = request.getParameter("pid");
if(pid!=null){//说明点击了上一页或下一页
pageindex = Integer.parseInt(pid);//改变pageindex的值
}
//计算页码
int rows = nd.getrow("news280 where ntitle like '%"+title+"%'");//调用写的方法,通过传参把要查询的sql语句传到String sql=“select * from 这里”
int max = rows/pagesize;
if(rows%pagesize!=0){
max++;
}
//调用查询的方法
List<News> ls=nd.getpage(pageindex,pagesize,title);
//循环遍历
for(News n:ls){//n:新闻对象
%>
<li> <a href="/JW05/read.jsp?nid=<%=n.getNid()%>"><%=n.getNtitle() %></a>
<span> 作者:<%=n.getNauthor() %>    
<a href='/JW05/news/update.jsp?nid=<%=n.getNid()%>'>修改</a>     
<a href='/JW05/news/dodelete.jsp?nid=<%=n.getNid() %>' onclick='return clickdel()'>删除</a>
</span>
</li>
<%
}
%>
<li class='space'></li>
<p align="right">
当前页数:[<%=pageindex%>/<%=max %>]
<a href="admin.jsp?pid=1&title=<%=title%>">首页</a>
<a href="admin.jsp?pid=<%=pageindex>1?pageindex-1:1%>">上一页</a>
<a href="admin.jsp?pid=<%=pageindex<max?pageindex+1:max%>">下一页</a>
<a href="admin.jsp?pid=<%=max%>">末页</a>
实现步骤 :
一、获取总记录数
二、根据每页显示记录数与总记录数计算总页数
1.计算分页页数
public int getTotalPages(int count, int pageSize){
int totalpages =0;
totalpages =
(count%pageSize ==0)?(count/pageSize):(count/pageSize+1);
return totalpages;
}
2.获取当前页
获取显示页的页码 ,如果获取的页码为NULL,则设置当前页为首页
如果获取的页码不为NULL,则该页码即为当前页页码
//获取当前页
String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
currentPage = "1";
}
int pageIndex = Integer.parseInt(currentPage);
3.分页sql语句(按时间排序后,显示第6-10条新闻)
String sql = "select * from (select rownum as r, t.* from ("+
"select news.* from news order by ncreatedate desc) t"+
" where rownum<=10) where r>5"
4.分页设置的实现
根据已确认的当前页,设置上页和下页 根据总页数设置首页和末页
<a href="news_list.jsp?pageIndex=1">首页</a>
<a href="news_list.jsp?pageIndex=<%= pageIndex -1%>">上一页</a>
<a href="news_list.jsp?pageIndex=<%= pageIndex +1%>">下一页</a>
<a href="news_list.jsp?pageIndex=<%=totalpages%>">末页</a>
5.通过判断pageIndex变 量实现首末页的控制
String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
currentPage = "1";
}
int pageIndex = Integer.parseInt(currentPage);
//对首页与末页进行控制
if(pageIndex < 1){
pageIndex = 1;
}else if(pageIndex > totalpages){
pageIndex = totalpages;
}