分页封装实用工具类及其使用方法

分页封装实用工具类及其使用方法

作者: javaboy2012
Email:yanek@163.com
qq:    1046011462

 

 

package com.yanek.util;

import java.util.List;

public class PageBean {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

	}

	private int currentpage; // 当前页数
	private int pagesize; // 每页大小
	private int totalPagecount; // 总页数
	private int totalRecordCount; // 总记录数
	private List recordContents; // 当前页记录内容列表

	public int getCurrentpage() {
		return currentpage;
	}

	public int getPagesize() {
		return pagesize;
	}

	public List getRecordContents() {
		return recordContents;
	}

	public int getTotalPagecount() {
		return totalPagecount;
	}

	public int getTotalRecordCount() {
		return totalRecordCount;
	}

	public PageBean(int currentpage, int pagesize, int totalRecordCount, List recordContents) {
		super();
		this.currentpage = currentpage;
		this.pagesize = pagesize;
		this.totalRecordCount = totalRecordCount;
		this.recordContents = recordContents;

		if (totalRecordCount % pagesize == 0) {
			this.totalPagecount = totalRecordCount / pagesize;
		} else {
			this.totalPagecount = totalRecordCount / pagesize + 1;
		}
	}

}

调用方法:

 action里调用:

	public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

                TopicDAO tdao=new TopicDAOImpl();

		String s_pagesize=(String)request.getParameter("pagesize");
		int pagesize=20;
		if (s_pagesize!=null)
		{
			pagesize=Integer.parseInt(s_pagesize);
		}
		int pagecount=1;
		String s_pagecount=(String)request.getParameter("pagecount");
		if (s_pagecount!=null)
		{
			pagecount=Integer.parseInt(s_pagecount);
		}

                //得到记录总数		

		long totalcount=tdao.getTopicTotalCount();

		System.out.println("total:"+totalcount);

		List topics=tdao.getTopics(pagesize,pagecount);

		for (int i=0;i<topics.size();i++)
		{
			TopicBean tb=(TopicBean)topics.get(i);

			System.out.println(tb.getTid()+"-"+tb.getTname());
		}

		PageBean  pb=new PageBean(pagecount,pagesize, (int)totalcount,topics);

		request.setAttribute("topic_pagebean", pb);

		return mapping.findForward("topic_list");
	}

jsp页面调用示例:

  <%

	    PageBean  pb=(PageBean)request.getAttribute("topic_pagebean");
	    List topics=pb.getRecordContents();
   %>

<div class="cont">

<center><h2>记录列表</h2></center><br/><br/>
	<div class="list">

<form name="topic"  action="topic.do" method="get">

      <input type="hidden" name="method" value="list" />
      <input type="hidden" name="pagesize" value="<%=pb.getPagesize()%>" />

	  <table width="100%" border="0">
        <tr class="white">
          <th class="sl1" width="30%">标题</th>
          <th width="30%" class="sl1">描述</th>
          <th class="sl1" width="25%">ID </th>
          <th width="15%"> 操作</th>
        </tr>

      	<% 

      	for (int i=0;i<topics.size();i++)
		{
			TopicBean tb=(TopicBean)topics.get(i);
			%>

			<%
			 String classname="";
			 if (i%2==1)
			 {
			  classname="white";
			 }

			%>
			<tr class="<%=classname %>">
	          <td><%=tb.getTname() %></td>
	          <td><%=tb.getTdesc() %></td>
	          <td>

				<%=tb.getTid() %>
			  </td>
	          <td><a href='/topic.do?method=view&tid=<%=tb.getTid() %>'>[查看]</a></td>
	        </tr>

			<%

		}
		%>

	        <tr>
		<td colspan="6">
		<p align="center">
		<br/>

		共<%=pb.getTotalRecordCount() %>个记录,共<%=pb.getTotalPagecount() %>页,每页<%=pb.getPagesize() %>个 ,当前第<%=pb.getCurrentpage() %>页

		 <%
   if (pb.getCurrentpage()==1)
   {

     out.print("首页  上页 ");
   }
   else
   {
     %>
      <a href="topic.do?method=list&pagecount=1&pagesize=<%=pb.getPagesize() %>">首页</a>
      <a href="topic.do?method=list&pagecount=<%=pb.getCurrentpage()-1%>&pagesize=<%=pb.getPagesize() %>">上页</a>
     <%

   }
   %>

    <%
   if (pb.getCurrentpage()==pb.getTotalPagecount())
   {

     out.print("下一页  尾页 ");
   }
   else
   {
     %>

  <a href="topic.do?method=list&pagecount=<%=pb.getCurrentpage()+1 %>&pagesize=<%=pb.getPagesize() %>">下一页 </a>
  <a href="topic.do?method=list&pagecount=<%=pb.getTotalPagecount() %>&pagesize=<%=pb.getPagesize() %>">  尾页</a>
     <%

   }
   %> 

		转到第 <input type="text" name="pagecount" value="<%=pb.getCurrentpage() %>" size="4"> 页

		 <input type="submit" value="GO" size="4">

		</td>
	</tr>

      </table></form>

  </div>
</div>

action配置

<action path="/topic" type="com.myweb.web.action.TopicAction" scope="request"  parameter="method">
			<forward name="topic_list" path="/WEB-INF/pages/test/test/topic_list.jsp"/>
</action>

访问方式: http://192.168.0.1/topic.do?method=list&pagecount=1&pagesize=10

 

时间: 2025-01-18 22:51:20

分页封装实用工具类及其使用方法的相关文章

Pig系统分析(7) Pig实用工具类

Explain Explain是Pig提供的调试工具,使用explain可以输出Pig Lation的执行计划.值得一提的是,explain支持-dot选项,将执行计划以DOT格式输出, (DOT是一种图形描述语言,请参考http://zh.wikipedia.org/zh/DOT%E8%AF%AD%E8%A8%80) 代码实现详见org.apache.pig.impl.plan.DotPlanDumper,这部分实现为我们设计执行计划可视化提供了参考. 下图部分截取了使用Graphviz打开物

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式.Data Accessor 模式实现了数据访问和业务逻辑的分离:Active Domain Object 模式实现了业务数据的对象化封装. 需要注意的是,DAO设计模式是Java EE中的设计模式

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

[正文] 首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(b

轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类

       在写这个工具类的时候发现传入的参数太多,以至于方法泛滥,只一个send方法就有30多个,所以对工具类进行了优化,把输入参数封装在一个对象里,这样以后再扩展输入参数,直接修改这个类就ok了.        不多说了,先上代码: /** * 请求配置类 * * @author arron * @date 2016年2月2日 下午3:14:32 * @version 1.0 */ public class HttpConfig { private HttpConfig(){}; /**

轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)

       搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就做最好的,本工具类支持插件式配置Header.插件式配置httpclient对象,这样就可以方便地自定义header信息.配置ssl.配置proxy等.        是不是觉得说的有点悬乎了,那就先看看调用吧: public static void testSimple() thro

轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象

       上一篇文章中,简单分享一下封装HttpClient工具类的思路及部分代码,本文将分享如何实现插件式配置HttpClient对象.        如果你看过我前面的几篇关于HttpClient的文章或者官网示例,应该都知道HttpClient对象在创建时,都可以设置各种参数,但是却没有简单的进行封装,比如对我来说比较重要的3个:代理.ssl(包含绕过证书验证和自定义证书验证).超时.还需要自己写.所以这里我就简单封装了一下,顺便还封装了一个连接池的配置.        其实说是插件式

轻松把玩HttpClient之封装HttpClient工具类(八),优化启用Http连接池策略

       写了HttpClient工具类后,有人一直在问我怎么启用http连接池,其实我没考虑过这个问题.不过闲暇的时候,突然间想起了这个问题,就想把这个问题搞一搞.        之前没用过,但是理解起来应该不算难.作为一个Coder,就算没用过http连接池,但是肯定用过数据库连接池.二者的功能是类似的,就是把建立链接和断开链接的时间节省下来.众所周知,http建立链接是需要3次握手,了解的深入一些的,还知道断开链接需要4次握手.这些操作都是自动完成的,如果我们把这些建立和断开链接的时间

CLHep 2.1.1.0发布 实用工具类

CLHep是一套HEP特定的基础库和实用工具类,如随机生成器,物理向量,几何,和线性代数.CLHep是由一个独立于任何外部的程序包构成,即允许在一定条件下CLHEP的相互依存关系). CLHep 2.1.1.0版本增加了一个Azzalini歪斜正态分布的实施,修复了一些小的bug. 软件信息:http://wwwasd.web.cern.ch/wwwasd/lhc++/clhep/ 下载地址: Source: http://wwwasd.web.cern.ch/wwwasd/lhc++/clhe

Android封装的http请求实用工具类

复制代码 代码如下:import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URLEncoder;import java.security.KeyStore;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry; import org.apache.http.