首先定义一个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时,不能再执行页面加一的功能。
执行代码后页面显示如下:


浙公网安备 33010602011771号