`
aa00aa00
  • 浏览: 331435 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

struts+hibernate用的分页Bean

阅读更多

package org.infosys.util;

import java.text.DecimalFormat;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;

import com.infosys.Hibernate.SessionFactory;

/**
* @author Administrator
* 计算分页信息
*/
public class DbPages {
  /**
   * 计算分页信息
   * @param pageSize 页长度
   * @param currentPage 当前页
   * @param sql sql语句
   * @param scriptUrl 翻页信息链接地址
   * @return
   */
  public String[] GetPageInfo(int pageSize,String currentPage,String sql,String scriptUrl) {
  String totalNum="0";
  Session session;
  try {
session = SessionFactory.currentSession();
totalNum=""+((Integer)session.createQuery(sql).uniqueResult()).intValue();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
try {
SessionFactory.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return (new DbPages()).GetPageInfo(totalNum,pageSize,currentPage,scriptUrl);
  }
  /**
   * 计算分页信息
   * @param totalNum String 记录总数
   * @param pageSize String 页长度
   * @param currentPage String 当前页
   * @param scriptUrl String 翻页信息链接地址
   * @return String[]
   * 返回数组:GetPageInfo[0]为记录开始编号,GetPageInfo[1]为记录结束编号,GetPageInfo[2]为翻页信息串
   */
  public String[] GetPageInfo(String totalNum,int pageSize,String currentPage,String scriptUrl) {
    int totalNumInt=0;
    int currentPageInt=0;
    int totalPage=0;
    if(currentPage==null){
      currentPage="1";
      currentPageInt=1;
    }else{
      currentPageInt=Integer.parseInt(currentPage);
    }
    totalNumInt = Integer.parseInt(totalNum);
    totalPage = ceil(Double.parseDouble(totalNum) / pageSize);
    if(currentPageInt>totalPage){
      currentPageInt=totalPage;
    }
    if(scriptUrl==null){
      scriptUrl="?";
    }
    int pageParagraph = ceil(Double.parseDouble(""+currentPageInt)/10);
    int maxpageParagraph = ceil(Double.parseDouble(""+totalPage)/10);
    StringBuffer pagestr=new StringBuffer();
    pagestr.append("<script language='JavaScript'>\n");
    pagestr.append("function pageGo(){\n");
    pagestr.append("var pageid=window.document.all(\"pagenum\").value;\n");
    pagestr.append("var checknum=/^\\d+$/g;\n");
    pagestr.append("if(!checknum.test(pageid)){\n");
    pagestr.append("alert('输入页码只能为正整数!')\n");
    pagestr.append("pageid='1';\n");
    pagestr.append("}else if(pageid<1 || pageid>").append(totalPage).append("){\n");
    pagestr.append("alert('输入页码超出页码范围!')\n");
    pagestr.append("}else if(pageid==").append(currentPage).append("){\n");
    pagestr.append("alert('输入页码就是当前显示页码!')\n");
    pagestr.append("}else{\n");
    pagestr.append("window.location=\"").append(scriptUrl).append("page=\"+pageid;\n");
    pagestr.append("}\n}\n</script>\n");
    pagestr.append("页次:").append(currentPageInt).append("/").append(totalPage).append("页 ").append(pageSize).append("条/页&nbsp;&nbsp;");
    pagestr.append("<a href='").append(scriptUrl).append("page=1' title='第一页'><font face=webdings>9</font></a> ");
    if(pageParagraph>1)
      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph - 1) * 10)).append("' title='上十页'><font face=webdings>7</font></a> ");
    pagestr.append("<b>");
    int startpage=(pageParagraph - 1) * 10 + 1;
    int endpage=pageParagraph * 10 + 1;
    for(int i=startpage;i<endpage;i++){
      if(i==currentPageInt){
        pagestr.append("<font color=red>").append(i).append("</font> ");
      }else{
        if(i<=totalPage){
          pagestr.append("<a href='").append(scriptUrl).append("page=").append(i).append("'>").append(i).append("</a> ");
        }
      }
    }
    pagestr.append("</b>");
    if(pageParagraph<maxpageParagraph)
      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph * 10) + 1)).append("' title='下十页'><font face=webdings>8</font></a> ");
    pagestr.append("<a href='").append(scriptUrl).append("page=").append(totalPage).append("' title='末一页'><font face=webdings>:</font></a>");
    pagestr.append("&nbsp;&nbsp;<input name='pagenum' id='pagenum' type='text' value='").append(currentPage).append("' size='3'>");
    pagestr.append("<input type='button' name='cmdpage' value='GO' onClick=\"javascript:pageGo();\">");
    int start = (currentPageInt-1) * pageSize;
    int endtmp = start + pageSize;
    if(endtmp>totalNumInt){
      endtmp=totalNumInt;
    }
    int end = endtmp;
    String retArr[]=new String[3];
    retArr[0]=""+start;
    retArr[1]=""+end;
    retArr[2]=pagestr.toString();
    return retArr;
  }

  /**
   * 计算分页信息
   * @param totalNum String 记录总数
   * @param pageSize String 页长度
   * @param currentPage String 当前页
   * @return String[]
   * 返回数组:GetPageInfo[0]为记录开始编号,GetPageInfo[1]为记录结束编号,GetPageInfo[2]为翻页信息串
   */
  public String[] GetPageInfo(String totalNum,int pageSize,String currentPage) {
    int totalNumInt=0;
    int currentPageInt=0;
    int totalPage=0;
    if(currentPage==null){
      currentPage="1";
      currentPageInt=1;
    }else{
      currentPageInt=Integer.parseInt(currentPage);
    }
    totalNumInt = Integer.parseInt(totalNum);
    totalPage = ceil(Double.parseDouble(totalNum) / pageSize);
    if(currentPageInt>totalPage){
      currentPageInt=totalPage;
    }
    String scriptUrl="?";
    int pageParagraph = ceil(Double.parseDouble(""+currentPageInt)/10);
    int maxpageParagraph = ceil(Double.parseDouble(""+totalPage)/10);
    StringBuffer pagestr=new StringBuffer();
    pagestr.append("<script language='JavaScript'>\n");
    pagestr.append("function pageGo(){\n");
    pagestr.append("var pageid=window.document.all(\"pagenum\").value;\n");
    pagestr.append("var checknum=/^\\d+$/g;\n");
    pagestr.append("if(!checknum.test(pageid)){\n");
    pagestr.append("alert('输入页码只能为正整数!')\n");
    pagestr.append("pageid='1';\n");
    pagestr.append("}else if(pageid<1 || pageid>").append(totalPage).append("){\n");
    pagestr.append("alert('输入页码超出页码范围!')\n");
    pagestr.append("}else if(pageid==").append(currentPage).append("){\n");
    pagestr.append("alert('输入页码就是当前显示页码!')\n");
    pagestr.append("}else{\n");
    pagestr.append("window.location=\"").append(scriptUrl).append("page=\"+pageid;\n");
    pagestr.append("}\n}\n</script>\n");
    pagestr.append("页次:").append(currentPageInt).append("/").append(totalPage).append("页 ").append(pageSize).append("条/页&nbsp;&nbsp;");
    pagestr.append("<a href='").append(scriptUrl).append("page=1' title='第一页'><font face=webdings>9</font></a> ");
    if(pageParagraph>1)
      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph - 1) * 10)).append("' title='上十页'><font face=webdings>7</font></a> ");
    pagestr.append("<b>");
    int startpage=(pageParagraph - 1) * 10 + 1;
    int endpage=pageParagraph * 10 + 1;
    for(int i=startpage;i<endpage;i++){
      if(i==currentPageInt){
        pagestr.append("<font color=red>").append(i).append("</font> ");
      }else{
        if(i<=totalPage){
          pagestr.append("<a href='").append(scriptUrl).append("page=").append(i).append("'>").append(i).append("</a> ");
        }
      }
    }
    pagestr.append("</b>");
    if(pageParagraph<maxpageParagraph)
      pagestr.append("<a href='").append(scriptUrl).append("page=").append(((pageParagraph * 10) + 1)).append("' title='下十页'><font face=webdings>8</font></a> ");
    pagestr.append("<a href='").append(scriptUrl).append("page=").append(totalPage).append("' title='末一页'><font face=webdings>:</font></a>");
    pagestr.append("&nbsp;&nbsp;<input name='pagenum' id='pagenum' type='text' value='").append(currentPage).append("' size='3'>");
    pagestr.append("<input type='button' name='cmdpage' value='GO' onClick=\"javascript:pageGo();\">");
    int start = (currentPageInt-1) * pageSize;
    int endtmp = start + pageSize;
    if(endtmp>totalNumInt){
      endtmp=totalNumInt;
    }
    int end = endtmp;
    String retArr[]=new String[3];
    retArr[0]=""+start;
    retArr[1]=""+end;
    retArr[2]=pagestr.toString();
    return retArr;
  }

  private int ceil(double in){
    String dbStr=new DecimalFormat("#0").format(in);
    int newdb=Integer.parseInt(dbStr);
    if(in>newdb){
      newdb++;
    }
    return newdb;
  }

  public static void main(String[] args){
    String dataArr[]=(new DbPages()).GetPageInfo("239",2,"1","?");
    for(int i=0;i<dataArr.length;i++){
      System.out.println(dataArr[i]);
    }
  }
}
分享到:
评论

相关推荐

    Struts2+HIBERNATE实现分页(完整讲解)

    通过上述步骤,我们已经成功地使用Struts2和Hibernate实现了分页功能。在实际开发中,可能还需要考虑性能优化,如缓存策略、查询优化等。对于初学者来说,理解并实践这个过程是掌握Java Web开发的重要一环。不断学习...

    Struts+Spring+Hibernate通用分页解决方案

    在分页解决方案中,Spring可以帮助管理Bean的生命周期,以及协调Struts和Hibernate之间的通信。 3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)工具,它允许开发者使用Java对象来操作数据库记录,简化...

    spring+struts+hibernate实现分页

    在IT领域,尤其是在Web开发中,使用Spring、Struts和Hibernate框架进行集成是常见的实践,因为它们能够提供高效且灵活的解决方案。以下将详细讲解如何使用这三个框架实现分页功能。 首先,Spring作为核心的依赖注入...

    struts+hibernate分页

    综上所述,"struts+hibernate分页"涉及到的主要是如何在Struts的控制层和Hibernate的数据层之间协调处理分页请求,以及在DAO层利用Hibernate的特性实现数据库查询的分页。理解并掌握这两个框架的分页机制,对于开发...

    struts+hibernate做的分页

    在本项目中,"struts+hibernate做的分页"指的是使用这两个框架实现数据的分页展示。 分页在大型Web应用中至关重要,因为它能提高用户体验,避免一次性加载大量数据导致页面响应慢或浏览器崩溃。在Struts中,分页...

    Struts+Hibernate分页

    通过以上步骤,我们可以构建一个功能完备且易于维护的Struts+Hibernate分页系统。在实际开发中,还可以结合Spring框架进行整合,提高代码的可测试性和解耦性。同时,随着技术的发展,现在的Web应用更多地采用Spring ...

    struts+spring+hibernate+dwr+分页例子

    在这个例子中,Spring将用于管理Bean,协调Struts和Hibernate之间的通信。 3. **Hibernate**: Hibernate 是一个对象关系映射(ORM)框架,它简化了数据库操作。通过Hibernate,开发者可以用Java对象来操作数据库,...

    spring+struts+hibernate写的分页代码

    在本示例中,"spring+struts+hibernate写的分页代码" 提供了一个使用这三大流行Java框架实现分页功能的实例。下面将详细解释这三个框架以及它们如何协同工作来实现分页。 1. **Spring框架**:Spring 是一个全面的...

    新闻发布系统JAVA源码(struts+spring+hibernate)

    【新闻发布系统JAVA源码(struts+spring+hibernate)】是一个典型的Java Web应用程序,它利用了Struts、Spring和Hibernate三大开源框架的集成来构建高效、可维护的新闻发布平台。这个系统的主要目的是提供一个发布、...

    spring+struts2+hibernate整合实现分页

    在这个项目中,“spring+struts2+hibernate整合实现分页”是一个基础教程,旨在帮助初学者理解如何在SSH框架下实现数据的分页展示。下面将详细讲解这个主题中的关键知识点。 1. **Spring框架**:Spring是Java应用的...

    Struts + Hibernate v1.1 分页源码

    在实现分页功能时,通常会使用Criteria或HQL(Hibernate Query Language)进行查询,并结合Criteria的setFirstResult和setMaxResults方法来实现分页。例如,setFirstResult代表从哪条记录开始,setMaxResults则是每...

    struts2+spring2+hibernate3注册查询搜索分页实例

    总的来说,这个"Struts2+Spring2+Hibernate3注册查询搜索分页实例"是一个很好的学习资源,涵盖了Java Web开发中的基础和核心部分。通过学习这个实例,开发者不仅可以掌握三大框架的基本用法,还能了解到如何将它们...

    j2ee中struts+hibernate+spring+pager-taglib分页实例

    ### j2ee中struts+hibernate+spring+pager-taglib分页实例 #### 概述 在Java企业级应用开发中,Struts、Hibernate、Spring与Pager Taglib经常被联合使用,以构建高性能、高灵活性的应用系统。本文将详细介绍如何...

    jsp+struts+spring+hibernate新闻系统

    【标题】"jsp+struts+spring+hibernate新闻系统"是一个基于Java技术栈的Web应用程序,它利用了SSH(Struts、Spring、Hibernate)框架的集成来构建一个功能完善的新闻发布与管理系统。SSH框架是Java领域中常用的MVC...

    struts2.0+hibernate+spring分页

    3. 数据查询:使用Hibernate的Query或Criteria API,结合分页参数执行分页查询。 4. 分页结果:返回分页后的数据列表以及分页导航信息(如总页数、上一页、下一页等)。 在实际开发中,子类只需提供与业务相关的...

    struts2+hibernate3+spring3分页

    在分页场景下,Spring3可以用来管理Struts2和Hibernate3的bean,实现事务控制,以及提供数据访问对象(DAO)的抽象层,使得代码更易于测试和维护。 **分页原理**:分页通常分为前端分页和后端分页。前端分页是在...

    struts2+spring+hibernate分页显示

    总的来说,使用Struts2+Spring+Hibernate实现分页显示,需要综合运用这三个框架的核心特性,通过拦截器处理分页逻辑,Spring管理业务对象和事务,Hibernate处理数据查询。这个过程涉及到前端视图的构建、后端服务的...

    Spring+Hibernate完整分页

    4. **编写分页逻辑**:在DAO层,使用HQL(Hibernate Query Language)或Criteria API来构造带有分页条件的查询。例如,`from User order by id asc limit ?, ?`,其中问号代表参数,分别是页码和每页大小。 5. **...

    图书管理系统(struts+hibernate+spring+ext).zip

    《图书管理系统基于Struts、Hibernate、Spring和EXT的实现详解》 图书管理系统是软件工程领域常见的项目实践,尤其在高校的计算机专业毕业设计中,它经常作为案例来锻炼学生的综合能力。本系统采用经典的SSH...

    Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)

    总结来说,"Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)"项目展示了如何使用SSH框架来构建一个功能完善的书籍管理系统。Struts处理用户请求,Spring管理应用组件并提供事务支持,...

Global site tag (gtag.js) - Google Analytics