`
aa00aa00
  • 浏览: 325587 次
  • 性别: 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]);
    }
  }
}
分享到:
评论

相关推荐

    J2EE三大框架_笔记_a

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    J2EE框架_笔记_c

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    J2EE框架_笔记_b

    J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 包括:注册 登录功能 分页的实现 前端校验 验证码的实现 注册时有ajax 校验,登录时 后台从数据库...

    javaEE框架笔记,识货人下

    53使用Struts + Spring + Hibernate完成分页笔记.pdf 54留言管理程序_Struts + Spring + Hibernate笔记.pdf 6-Struts标签-BEAN标签笔记.pdf 7-Struts标签 -LOGIC标签笔记.pdf 8-Struts标签- HTML标签笔记.pdf 9-...

    Spring2.5+Struts2.0+hibernate3.0+Dwr+jquery+displayTag

    自已写的一个demo 1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;...5 加入display的分页,并且是物理分页 打开后自已建表sql.txt jdbc.properties

    java大作业基于SSH框架的学生成绩管理系统源码.zip

    (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的: 掌握Struts2的开发步骤 掌握Hibernate的开发...

    MLDN框架笔记大全

    假分页 02 JSP+JDBC_真分页(基于MySQL数据库分页) 03 JSP+DAO和MVC+DAO(基于MySQL数据库分页) 04 Struts入门 05 使用Struts + DAO完成用户登陆 06 Struts标签-BEAN标签 07 Struts标签 -...

    Java求职面试宝典各大公司常考知识点

    如果不使用Hibernate自带的分页,则采用什么方式分页? 3 1.4. hibernate的对象的三种持久化状态,并给出解释? 3 1.5. hibernate的三种状态之间如何转换 3 1.6. hibernate中一对多配置文件返回的是什么? 4 1.7. ...

    SSH整合练习增删改查

    struts2.1.8+hibernate3.5.5+spring3.0.2+mysql5.1+jdk1.6 使用SSH整合实现对一个bean的增删改查 实现的功能为: 排序,搜索,分页

    AutoCode代码生成器(SSH版)

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 ...

    基于SSH框架的在线考试系统 ,使用bootstrap作为前端框架

    基于SSH框架的在线考试系统 ,使用bootstrap作为前端框架,分页是自己分装的bean. 有以下功能 学生登录和教师登录 学生端: 学生在线考试 成绩查询 修改密码 退出系统 教师端:考生信息管理 考生成绩管理 试卷管理 ...

    AutoCode代码生成器【SSH版】

    JSP文件--&gt; 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--&gt; 业务Action.java和导出Excel的Action等 VO --&gt; bean.java及 bean.hbm.xml配置文件 Service --&gt; Service接口定义类 ...

    ssh代码生成器轻松、快捷

    用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置--&gt; ...

    低清版 大型门户网站是这样炼成的.pdf

    (Struts 2+Spring 2+Hibernate 3).pdf(完整版) 网上有高清版350M的。可以去下 http://115.com/file/be5gwid8 请于下载后 24H 内及时删除!请抱着学习的态度下载此资料。 总共900多页!!!!!!! 第1篇 ...

    火炬博客系统7

    可以很好的支持AOP(面向切面编程)的开发模式,Spring能有效地组织中间层对象,通过Bean容器为业务对象、DAO对象和资源对象提供了IOC类型的装配能力,将Struts和Hibernate集成起来,使用Spring构建的应用程序易于...

    火炬博客系统6

    可以很好的支持AOP(面向切面编程)的开发模式,Spring能有效地组织中间层对象,通过Bean容器为业务对象、DAO对象和资源对象提供了IOC类型的装配能力,将Struts和Hibernate集成起来,使用Spring构建的应用程序易于...

    火炬博客系统5

    可以很好的支持AOP(面向切面编程)的开发模式,Spring能有效地组织中间层对象,通过Bean容器为业务对象、DAO对象和资源对象提供了IOC类型的装配能力,将Struts和Hibernate集成起来,使用Spring构建的应用程序易于...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第24章 Hibernate与Struts框架  24.1 实现业务数据  24.2 实现业务逻辑  24.3 netstore应用的订单业务  24.4 小结 第25章 Hibernate与EJB组件  25.1 创建EJB组件  25.1.1 编写Remote接口  25.1.2 编写Home...

Global site tag (gtag.js) - Google Analytics