分页制作

制作网页分页首先要有一个实体类

这个实体类内封装了分页的的所有的属性,并且还有一个得到所有属性值的方法

package cn.bdqn.entity;
import java.util.List;

public class Page {
	//总记录数        从数据库查询
	private int totalRecords;

	//页面大小,即每页显示多少条
	private int pageSize=5;

	//总页数      计算出来(总记录数/页面大小)向上取整
	private int totalPage;

	//当前页码      从页面上传进来
	private int currPage;

	//每页开始查询的索引       计算出来  (当前页码-1)*页码容量
	private int startIndex;

	//每页新闻集合
	private List customerList;

	public Page(int currPage,int totalRecords){
		this.totalRecords=totalRecords;
		this.totalPage=totalRecords/pageSize==0?totalRecords/pageSize:totalRecords/pageSize+1;
		this.currPage=currPage;
		this.startIndex=(currPage-1)*pageSize;
	}
	//然后set/get方法

  在接口类定义两个方法

           //分页显示所有的客户
	public List<Customer> allCustomer(int startIndex,int pageSize);
	   //分页查询总记录数
	int findPageCustomer();

  接着实现接口类里面写

/**
	 * 分页显示客户列表
	 */
	@Override
	public List<Customer> allCustomer(int startIndex, int pageSize) {
		String sql="select * from customer limit ? ,? ";
		List<Customer> list =null;
		try {
			list=qr.query(sql, new BeanListHandler<Customer>(Customer.class), startIndex,pageSize);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * 查询记录总数          查询有多少信息
	 */
	@Override
	public int findPageCustomer() {
		String sql="select count(1) from customer";
		int count=0;
		try {
		long lr=(Long) qr.query(sql, new ScalarHandler(1));
		count=Integer.parseInt(lr+"");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return count;
	}

  在服务实现层里的服务类(service)里写一条page的方法

//通过传过来现在的页面获取Page里的所有信息
public  Page findPage(int currentPage);

  在实现服务类(serviceImpl)里写实现

Page findPage(int currentPage)的方法
/**
	 * 通过传过来的currentPage来确定Page的信息
	 */
	@Override
	public Page findPage(int currPage) {
		int totalRecords=cd.findPageCustomer();  //总记录数
		Page page = new Page(currPage,totalRecords);
		List<Customer> list=cd.allCustomer(page.getStartIndex(), page.getPageSize());
		page.setCustomerList(list);
		return page;
	}

  这样原实体类的Page的所有属性都会有值了

在服务器里写个请求把page的值只给传过去

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//String path = request.getContextPath();
		String currentPageStr = request.getParameter("pagenum");
		int currentPage=1;
		if(currentPageStr!=null){
			currentPage=Integer.parseInt(currentPageStr);
		}
		CustomerService cs=new CustomerServiceImpl() ;
			Page page=cs.findPage(currentPage);
			request.setAttribute("page", page);
			request.getRequestDispatcher("../WEB-INF/jsp/index.jsp").forward(request, response);
	}
pagenum是index.jsp传过来的页面值首次访问方服务器时pagenum是空值,index.jsp给的首页赋值为1例如
总记录数:${requestScope.page.totalRecords }  当前第${page.currPage }页/共${page.totalPage }页
        <a href="${path }/servlet/start_index?pagenum=1">首页</a> &nbsp;
        <a href="${path }/servlet/start_index?pagenum=${page.currPage-1<1?1:page.currPage-1}">上一页</a> &nbsp;
        <a href="${path }/servlet/start_index?pagenum=${page.currPage+1<page.totalPage?page.currPage+1:page.totalPage}">下一页</a> &nbsp;
        <a href="${path }/servlet/start_index?pagenum=${page.totalPage}">尾页</a>
        <input id="bottom" type="button" value="跳转至"/><input type="text" style="width:33PX" id="num" value="2"/>

整个分页就写好了啊

时间: 2024-10-11 06:03:02

分页制作的相关文章

牛腩新闻发布系统总结——网站发布和分页制作

牛腩新闻发布系统的视频看了将近半个月的时间,今天成功地把它发布了,哈哈.第一次看教学视频看得这么专注,都不带走思的,很不错.给小牛老师赞一个,嘿嘿! 言归正传,每学完一个阶段,最重要的就是总结,所以就允许我以倒序的形式,颗粒归仓吧! 牛腩新闻发布系统的发布 参考博文: win7下IIS的安装和配置 http://www.jb51.net/article/29787.htm VS2010网站发布详解 http://wanghaitaoboke.blog.163.com/blog/static/17

TP分页制作

$count      = $product_model->where($where)->count(); $Page       = new Page($count,20); $show       = $Page->show(); $list = $product_model->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();

AspNetPager分页记录显示实例

在牛腩视频中的最后一集,涉及到了一个外部控件AspNetPager实现分页记录显示的一个小例子没有完成,据了解分页显示功能在软件设计中是很重要的一个功能,因此,在这里讲未完成的工作完成. 在视频中讲到,gridview的分页功能属于假分页,为什么呢?因为每次分页必须查询完数据库中所有的记录,这样如果数据量过大,将会造成很大不便.所以选择了AspNetPager这个控件. 其实,这个控件只是提供了一个分页功能,它并不能显示数据,因此,它还是需要与gridview结合起来使用才可以完全实现我们分页的

怎样通过AspNetPager实现分页功能

对于牛腩视频中的最后一集,在实现分页的时候,视频里关于假分页也没有实现,所以在看了别人的博客,以及找了找资料,终于搞定了,下面分享一下我的制作过程. 总的来说,这里面最主要的部分就是存储过程的编写,以及在AspNetPager怎样传输数据. 1.首先是页面,总得要有地方显示.那么问题来了,按照视频上所讲,只用AspNetPager来实现,只显示页数,没有数据时不可能的,所以我们需要将其和gridview控件合起来使用. 点击gridview空间右上角出现的 编辑列 按钮,进行数据绑定.点击Bou

L1--直角分页标签制作

介绍 直角分页页码制作 制作流程 静态结构页面制作 <div class="page-normal"> <span class="page-prev"><</span> <span class="page-current">1</span> <a href="#">2</a> <a href="#">3&l

转载:分页原理+分页代码+分页类制作

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一.对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解. 一.分页原理:       所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数: 每页多少条记录($PageSize)?       当前是第几页($CurrentPageID)? 现在只要再给我一个结果集,我就可以显示某段特

[原创]WinForm分页控件制作

先简单说一下思路: 1.做一个分页控件的导航类,即记录总页数.当前页.每页记录数,下一页.上一页.跳转等操作的页数变更. class PageNavigation{/// <summary>/// display item count for per page/// default value is 20/// </summary>private int _iPerItemCount = 20;public int PerItemCount{get { return _iPerIt

纯CSS制作自适应分页条-分享------彭记(019)

纯css制作自适应分页条 效果图: html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-wi

ASP.NET MVC 系列:使用Flurl制作可复用的分页组件

使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这么用.分页的逻辑本来就不复杂,更重要的是最近发现了Flurl这个开源库,所以采用Flurl制作一个DIY的分页组件,核心是PagingModel文件,算法可能不是最优,但包含了主要的逻辑和实现关键点.由于在查询方面,我使用以下实践: 1.使用ViewModel封装查询参数 2.使用ViewModel作为View的Model类型 3.采