`
jingliankui123
  • 浏览: 104829 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Hibernet分页

阅读更多

/**
 * 此文件描述的是:PageBean.java
 */
package cn.com.sohocat.util;

import cn.com.sohocat.common.Common;


/**
 * @author blaiu
 *
 */
public class PageBean {

 private String keyword;  //关键字
 
 private String urlAction; //超链action路径
 
 private int pageNo;   //pageNo:页号表示当前是第几页
 
 private int totalRecords; //totalRecords:查询的总记录数

 private int pageSize = 10; //pageSize:页面可以显示多少条记录:初始化为10

 private int totalPages;  //totalPages:总共的页数

 private int startRecord; //startRecord:起始记录
 
 private int endRecord;  //endRecord:末记录

 private int firstPage = 1; //firstPage:第一页
 
 private int lastPage;  //lastPage:最后一页
 
 private int nextPage;  //nextPage:下一页
 
 private int prevPage;  //prevPage:上一页
 
 private int navStartNo;  //navStartNo:当前显示的起始页

 private int navEndNo;  //navEndNo:当前显示的最后一页

 private int navSize = 10; //页面上要显示的页数
 
 /**
  *
  * @param pageNo  页号
  * @param totalRecords 总记录数
  * @param keyword  关键字
  * @param urlAction  路径
  * @param pageSize  页面显示的记录数 默认10(当pageSize等于0时)
  * @param navSize  页面显示的页数   默认10(当navSize等于0时)
  */
 public PageBean(int pageNo, int totalRecords, String keyword, String urlAction, int pageSize, int navSize) {
  this.keyword = keyword;
  this.pageNo = pageNo;
  this.totalRecords = totalRecords;
  this.urlAction = urlAction;
  if(pageSize != 0) {
   this.pageSize = pageSize;
  }
  if(navSize != 0) {
   this.navSize = navSize;
  }
  /**
   * Math.ceil((double) (totalRecords / pageSize)):返回最小的(最接近负无穷大)double 值,该值大于或等于参数,并且等于某个整数
   * totalPages:总页数
   */
  this.totalPages = this.totalRecords / this.pageSize;
  if((this.totalRecords % this.pageSize)>0) {
   this.totalPages = this.totalPages + 1;
  }
  this.startRecord = (this.pageNo - 1) * this.pageSize;
  this.endRecord = Math.min(this.startRecord + this.pageSize, this.totalRecords);
  this.lastPage = this.totalPages;
  /**
   * Math.min(pageNo + 1, lastPage):比较两个参数的值,返回较小的一个
   */
  this.nextPage = Math.min(this.pageNo + 1, lastPage);
  /**
   * Math.max:比较两个参数的值,返回较大的一个
   */
  this.prevPage = Math.max(1, this.pageNo - 1);
  this.navStartNo = Math.max(1, this.pageNo - this.pageSize / 2);
  this.navEndNo = Math.min(this.navStartNo + this.navSize, this.lastPage);
  if (this.navEndNo - this.navStartNo < this.navSize) {
   this.navStartNo = Math.max(this.navEndNo - this.navSize, 1);
  }
  
  
 }

 public int getFirstPage() {
  return firstPage;
 }

 public void setFirstPage(int firstPage) {
  this.firstPage = firstPage;
 }

 public int getLastPage() {
  return lastPage;
 }

 public void setLastPage(int lastPage) {
  this.lastPage = lastPage;
 }

 public int getNavEndNo() {
  return navEndNo;
 }

 public void setNavEndNo(int navEndNo) {
  this.navEndNo = navEndNo;
 }

 public int getNavSize() {
  return navSize;
 }

 public void setNavSize(int navSize) {
  this.navSize = navSize;
 }

 public int getNavStartNo() {
  return navStartNo;
 }

 public void setNavStartNo(int navStartNo) {
  this.navStartNo = navStartNo;
 }

 public int getNextPage() {
  return nextPage;
 }

 public void setNextPage(int nextPage) {
  this.nextPage = nextPage;
 }

 public int getPageNo() {
  return pageNo;
 }

 public void setPageNo(int pageNo) {
  this.pageNo = pageNo;
 }

 public int getPageSize() {
  return pageSize;
 }

 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }

 public int getPrevPage() {
  return prevPage;
 }

 public void setPrevPage(int prevPage) {
  this.prevPage = prevPage;
 }

 public int getStartRecord() {
  return startRecord;
 }

 public void setStartRecord(int startRecord) {
  this.startRecord = startRecord;
 }

 public int getTotalPages() {
  return totalPages;
 }

 public void setTotalPages(int totalPages) {
  this.totalPages = totalPages;
 }

 public int getTotalRecords() {
  return totalRecords;
 }

 public void setTotalRecords(int totalRecords) {
  this.totalRecords = totalRecords;
 }

 public String getKeyword() {
  return keyword;
 }

 public void setKeyword(String keyword) {
  this.keyword = keyword;
 }

 public String toString() {
  StringBuffer sb = new StringBuffer();
  
  /**
   * pageNo不等于1表示为:
   */
  sb.append("共"+this.totalPages+"页 ");
  String pageNoStr = "document.getElementById(\"pageNo\").value";
  if (null != this.keyword) {
   if (this.pageNo != 1 && this.totalPages > 0) {
    
    sb.append("<a href=\"'"+urlAction+"'&pageNo=" + this.firstPage + "&keyword="
      + Common.encode(keyword) + "\">首页</a>");
    sb.append("  ");
    sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.prevPage + "&keyword="
      + Common.encode(this.keyword) + "\">上页</a>");
    sb.append(" ");
   }
//   for (int i = this.navStartNo; i <= this.navEndNo; i++) {
//    if (this.pageNo != i) {
//     sb.append("[<a href=\""+this.urlAction+"&pageNo=" + i
//       + "&keyword=" + Common.encode(this.keyword) + "\">" + i + "</a>]");
//     sb.append("  ");
//     
//    } else {
//     sb.append("[" + i + "]");
//     sb.append("  ");
//    }
//   }
   if (this.pageNo != this.lastPage && this.totalPages > 0) {
    sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.nextPage + "&keyword="
      + Common.encode(this.keyword) + "\">下页</a>");
    sb.append("  ");
    sb.append("<a href=\"search.action?pageNo=" + this.lastPage + "&keyword="
      + Common.encode(keyword) + "\">末页</a>");
    sb.append("  ");
   }
  } else {
   if (this.pageNo != 1 && this.totalPages > 0) {
    sb.append("<a href=\""+urlAction+"&pageNo=" + this.firstPage + "\">首页</a>");
    sb.append("  ");
    sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.prevPage + "\">上页</a>");
    sb.append("  ");
   }
   
//   for (int i = this.navStartNo; i <= this.navEndNo; i++) {
//    if (pageNo != i) {
//     sb.append("[<a href=\""+this.urlAction+"&pageNo=" + i + "\">" + i + "</a>]");
//     sb.append("  ");
//    } else {
//     sb.append("[" + i + "]");
//     sb.append("  ");
//    }
//   }
   if (this.pageNo != this.lastPage && this.totalPages > 0) {
    sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.nextPage + "\">下页</a>");
    sb.append("  ");
    sb.append("<a href=\""+urlAction+"&pageNo=" + this.lastPage + "\">尾页</a>");
   }
  }
  
  sb.append("  第<input type=\"text\" size=\"2\" id=\"pageNo\" value=\""+this.pageNo+"\"/>页");
  sb.append(" ");
  sb.append("<a href=\"javascript:jump()\">跳页</a>");
  sb.append("<script>function jump(){var page =document.getElementById(\"pageNo\").value;if(page>"+this.totalPages+"){alert(\"您输入的值太大\");return}else if(page<0){alert(\"您输入的值太小\");return}else{document.location=\""+this.urlAction+"&pageNo=\"+"+pageNoStr+"+\"&keyword="+Common.encode(this.keyword)+"\"}}</script>");
  return sb.toString();
 }

 public String getUrlAction() {
  return urlAction;
 }

 public void setUrlAction(String urlAction) {
  this.urlAction = urlAction;
 }

 public int getEndRecord() {
  return endRecord;
 }

 public void setEndRecord(int endRecord) {
  this.endRecord = endRecord;
 }
}

 

action

public ActionForward link(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  log.debug("UserAction--->link--->start");
  String pageNoStr = request.getParameter("pageNo");
  String userName = request.getParameter("userName");
  String isActive = request.getParameter("isActive");
  String rank = request.getParameter("rank");
  String isAudited = "";
  //存放每页用户userid集合
  StringBuffer buffer = new StringBuffer();
  List<HoUserSohoTeam> sohoTeams = new ArrayList<HoUserSohoTeam>();
  List<HoUserSohoVip> sohovips = new ArrayList<HoUserSohoVip>();
  //去除重复key,临时存放
  Map<Integer, Integer> map = new HashMap<Integer, Integer>();
  
  int count = iHoUser.queryALLCount(userName,isActive,isAudited, rank);
  int pageNo;
  if("".equals(pageNoStr)||pageNoStr == null  ) {
   pageNo = 1;
  }
  try {
    int i = Integer.parseInt(pageNoStr);
    if(i < 0) {
     pageNo = 1;
    }else {
     pageNo = i;
    }
  } catch(NumberFormatException e) {
   pageNo = 1;
  }
  
  String url;
  if(userName==null && isActive==null && rank==null)
   url = "user.do?method=link";
  else
   url = "user.do?method=link&userName="+userName+"&isActive="+isActive+"&rank="+rank+"&isAudited="+isAudited;
   
  
  
  PageBean pageBean = new PageBean(pageNo, count, null,url, 0, 0);
  request.setAttribute("page", pageBean);
  request.setAttribute("pageStr", pageBean.toString());
  request.setAttribute("pageNo", pageBean.getPageNo());
  
  
  request.setAttribute("userName", userName);
  request.setAttribute("isActive", isActive);
  request.setAttribute("isAudited", isAudited);
  request.setAttribute("rank", rank);
  
  List<HoUser> list = iHoUser.queryHoUserByIf(userName, isActive, rank, isAudited,pageBean.getStartRecord(), pageBean.getPageSize());
  
  for(int i = 0; i < list.size(); i++){
   int id = list.get(i).getUserId();
   if(!map.containsKey(id)){
    map.put(id, id);
    if(map.size() != 1){
     buffer.append(", ");
    }
    buffer.append(id);
   }
  }
  
//  log.debug("11buffer:"+buffer.toString());
  if(!Common.isEmpty(buffer.toString())){
   sohoTeams = iHoUserSohoTeam.queryByUserIDs(buffer.toString());
  }
  
//  for(int i = 0; i < sohoTeams.size(); i++){
//   log.debug("-------->"+sohoTeams.get(i).getId()+":"+sohoTeams.get(i).getTeamId());
//  }
  
  buffer.delete(0, buffer.length());
  map.clear();
  
  for(int i = 0; i < sohoTeams.size(); i++){
   int id = sohoTeams.get(i).getTeamId();
   if(!map.containsKey(id)){
    map.put(id, id);
    if(map.size() != 1){
     buffer.append(", ");
    }
    buffer.append(id);
   }
  }
//  log.debug("22buffer:"+buffer.toString());
  if(!Common.isEmpty(buffer.toString())){
   sohovips = iHoUserSohoVip.queryByTeamIDs(buffer.toString());
  }

  request.setAttribute("sohovips", sohovips);
  log.debug("sohoTeams:"+sohoTeams.size());
  request.setAttribute("sohoTeams", sohoTeams);
  request.setAttribute("lists", list);
  buffer = null;
  map = null;
     return mapping.findForward("user");
  
 }
 

在页面上加这个句就可以了

<div class="a">找到<span id="totalRecords">${page.totalRecords }<span>条记录。</div>
  <div class="b" style="margin-right:50px;">${pageStr} </div>

分享到:
评论

相关推荐

    struts spring hibernet开发

    struts spring hibernet开发

    Struts+Spring+Hibernet整合例子

    Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子 Struts+Spring+Hibernet整合例子

    hibernet

    **标题与描述解析** 标题"hibernate"指的是Hibernate,这是一个流行的对象关系映射(ORM)框架,主要用于Java应用程序,而".net"通常关联于Microsoft的.NET框架,它是一个用于构建各种类型应用程序的开发平台。...

    hibernet的jar包

    hibernet运行时所需的jar包,它是运行hibernet时所必须的,谢谢下载

    HIBERNET教程

    标题“HIBERNET教程”表明这是一个关于Hibernate的教育性资源,旨在教授用户如何使用Hibernate这一Java编程中的持久化框架。Hibernate是面向对象的映射工具,用于简化数据库操作,使开发者能够用Java对象来操作...

    SSH学习spring struts,hibernet

    spring struts,hibernet整合学习

    hibernet面试笔试题

    【hibernate面试笔试题】知识点详解 Hibernate 是一个广泛使用的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的编程方式来处理数据库交互。在面试和笔试中,Hibernate 相关的问题是...

    java学习(ssh) action structs spring hibernet

    ### Java学习:SSH框架详解与常见问题解析 在深入探讨Java学习过程中遇到的关于SSH(Struts、Spring、Hibernate)框架的问题之前,我们先来理解一下这三个框架的基本概念及其在企业级应用开发中的作用。...

    hibernet的最新jar包.zip

    **标题与描述解析:** 标题"hibernate的最新jar包.zip"表明这是一个包含Hibernate最新版本的Java档案(JAR)文件的压缩包。描述中的重复内容“hibernate的最新jar包.zip”可能是输入错误,但我们可以理解为强调这是...

    hibernet实例

    标题中的“hibernate实例”指的是关于Hibernate框架的实际应用示例。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转换为面向对象的方式,从而简化了数据库编程。...

    JAVAB/S架构资讯网struts、spring、hibernet

    Java B/S架构是一种常见的软件开发模型,主要用于构建Web应用程序。在这个模型中,"B"代表Browser(浏览器),而"S"代表Server(服务器)。在这种架构下,用户通过浏览器与服务器进行交互,服务器处理业务逻辑和数据...

    structs+hibernet用户登录系统

    在IT行业中,Structs和Hibernate是两个非常重要的Java框架,它们在开发Web应用程序时起着关键作用。Structs主要用于处理MVC(Model-View-Controller)架构中的控制器部分,而Hibernate则是一个强大的对象关系映射...

    OA 项目(struct+hibernet+sql),java jsp java内部培训时做的,很适合学习框架的同志参考

    《OA项目:结构化、Hibernate与SQL的深度整合》 OA(Office Automation)项目是企业信息化建设中的重要一环,通常涉及到多种技术的综合运用。本项目以“struct+hibernate+sql”为核心,结合Java、Ajax和JSP,为初学...

    hibernet的PPT

    **标题与描述解析** 标题"hibernate的PPT"暗示了我们将要探讨的主题是关于Hibernate,一个在Java开发中广泛使用的对象关系映射(ORM)框架。这可能是一个介绍性或进阶性的PPT,涵盖了Hibernate的核心概念、功能以及...

    ssh2整合(Struts2.0,Spring 2.5,Hibernet 2.5)

    SSH2是一种常见的Java Web开发框架组合,由Struts2、Spring和Hibernate三个开源框架组成,用于构建高效、灵活的企业级应用程序。在这个项目中,SSH2被整合到一起,使用myEclipse 8.0作为集成开发环境,JDK 1.6.0作为...

    Struts2+Spring+Hibernet+JPA+sitemesh+log4j

    Struts2、Spring、Hibernate、JPA、SiteMesh和Log4j是Java Web开发中非常重要的六个组件,它们各自承担着不同的职责,并且在实际项目中经常被整合使用,形成了所谓的"SSH2"(Struts2 + Spring + Hibernate)框架组合...

    struts+hibernet用户登录注册

    struts+hibernet用户登录注册,用户名跟密码从JSP页面传输到服务器上,接收请求的是ActionServlet,ActionServlet接收到请求后,会查找Struts-config.xml文件来确定服务器上是否有用户请求的操作,此处用户请求的操作...

    hibernet swing 影碟租赁系统

    《hibernate swing 影碟租赁系统:MySQL与Java技术的完美融合》 在IT行业中,构建一个功能完善的影碟租赁系统是常见的应用场景,而"hibernate swing 影碟租赁系统"则是一个典型示例,它巧妙地利用了MySQL数据库、...

    Hibernet要点解析

    ### Hibernet要点解析 #### 什么是实体关系 实体关系指的是数据模型中不同实体之间的相互联系。在软件开发中,实体通常被表示为类,并通过这些类来构建应用程序的数据层。实体之间的关系可以是一对一、一对多或多...

Global site tag (gtag.js) - Google Analytics