javaweb分页

分页重要代码

</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() %>&#160;&#160;&#160;&#160; 
	      	<a href='/JW05/news/update.jsp?nid=<%=n.getNid()%>'>修改</a> &#160;&#160;&#160;&#160; 
	      	<a href='/JW05/news/dodelete.jsp?nid=<%=n.getNid() %>' onclick='return clickdel()'>删除</a> 
      	</span> 
      </li>
				<%
					}
				%>
				<li class='space'></li>
				<p align="right">
					当前页数:[<%=pageindex%>/<%=max %>]&nbsp; 
					<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>&nbsp;
 <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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值