首先定义一个PageBean的实体类

public class PageBean {
   private List data;
   private int pageNo;//当前页码
   private int recordCount;//数据库记录数
   public int getRecordCount() {
   return recordCount;
  }
   public void setRecordCount(int recordCount) {
      this.recordCount = recordCount;
  }
   private int pageCount;//页面尺寸
   public List getData() {
     return data;
  }
   public void setData(List data) {
      this.data = data;
  }
   public int getPageNo() {
     return pageNo;
  }
   public void setPageNo(int pageNo) {
     this.pageNo = pageNo;
  }
   public int getPageCount() {
     return pageCount;
  }
   public void setPageCount(int pageCount) {
     this.pageCount = pageCount;
  }
}

news_list.jsp:实现从数据库取数据并进行分页的功能

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.news.service.impl.NewsServiceImpl" %>
<%@ page import="com.news.service.NewsService" %>
<%@ page import="com.news.entity.BaseNews" %>
<%@ page import="com.news.entity.PageBean" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'news_list.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<div>
<%
String channelId=request.getParameter("channel_id");
String pageNo=request.getParameter("pageNo");
PageBean pageBean=null;
if(pageNo==null||pageNo.equals("")){
pageNo="1";
}
if(channelId==null||channelId.equals("")){
channelId="0";
}
NewsService newsService =new NewsServiceImpl();
pageBean=newsService.getBaseList(Integer.parseInt(channelId),Integer.parseInt(pageNo),3);
%>
<table>
<%
int order=(Integer.parseInt(pageNo)-1)* 4;
for(int i=0;i<pageBean.getData().size();i++){
BaseNews news=(BaseNews)pageBean.getData().get(i);
%>
<tr><td><%=i+1 %></td><td><%=news.getTitle() %></td><td><%=news.getPublishTime() %></td><td><%=news.getComments() %></td></tr>
<%} %>
</table>
</div>

<a href="news_list.jsp?pageNo=1">首页</a>
<%if(pageNo.equals("1")){ %>

      上一页

<%}else{ %><a href="news_list.jsp?pageNo=<%=Integer.parseInt(pageNo)-1%>">上一页</a>
<%} %>
<%
if(Integer.parseInt(pageNo)==pageBean.getPageCount()){
%>
下一页
<%} else{%>
<a href="news_list.jsp?pageNo=<%=Integer.parseInt(pageNo)+1%>">下一页</a>
<%} %>
<a href="news_list.jsp?pageNo=<%=pageBean.getPageCount()%>">尾页</a>
<form action="news_list.jsp" method="post" target="_self" >
<input type="text" size="4" name="pageNo" value="1" />
<input type="submit" value="go" />
</form>
</body>
</html>

从代码中也可以看出,页面导航索引部分的上一页和下一页按钮是否可用是有条件限制的,当PageNo=1时,是一个临界条件,此时<上一页>不再具备页数减一的功能,同理,对于<下一页>,在PageNo=PageCount时,不能再执行页面加一的功能。

执行代码后页面显示如下:

posted on 2015-05-08 21:47  程序媛Kasey  阅读(85)  评论(0)    收藏  举报