`

spring+struts+hibernate分页实例

 
阅读更多

  1. package com.yizhou.common.test;   
  2.   
  3. /**  
  4.  *     
  5.  * Copyright @ 2008 YIZHOU SOFTWARE Co. Ltd.  
  6.  * All right reserved.  
  7.  *  
  8.  * @author xuxinlong  
  9.  *  
  10.  *  mail: longxx888@163.com  
  11.  *    
  12.  */  
  13. public class PageBean {   
  14.     private int count = 0// 记录总数   
  15.   
  16.     private int pageSize = 20// 每页显示记录数   
  17.   
  18.     private int pageCount = 0// 总页数   
  19.   
  20.     private int page = 1// 当前页数   
  21.   
  22.     private String totalCountSQL;// 得到总记录数sql语句   
  23.   
  24.     private String listSQL;// 得到查询记录sql语句   
  25.   
  26.     public int getCount() {   
  27.         return count;   
  28.     }   
  29.   
  30.     public void setCount(int count) {   
  31.         if (pageSize != 0) {   
  32.             pageCount = count / pageSize;   
  33.             if (count % pageSize != 0) {   
  34.                 pageCount++;   
  35.             }   
  36.         }   
  37.         this.count = count;   
  38.     }   
  39.   
  40.     public String getListSQL() {   
  41.         return listSQL;   
  42.     }   
  43.   
  44.     public void setListSQL(String listSQL) {   
  45.         this.listSQL = listSQL;   
  46.     }   
  47.   
  48.     public int getPage() {   
  49.         return page;   
  50.     }   
  51.   
  52.     public void setPage(int page) {   
  53.         this.page = page;   
  54.     }   
  55.   
  56.     public int getPageCount() {   
  57.         return pageCount;   
  58.     }   
  59.   
  60.     public void setPageCount(int pageCount) {   
  61.         this.pageCount = pageCount;   
  62.     }   
  63.   
  64.     public int getPageSize() {   
  65.         return pageSize;   
  66.     }   
  67.   
  68.     public void setPageSize(int pageSize) {   
  69.         this.pageSize = pageSize;   
  70.     }   
  71.   
  72.     public String getTotalCountSQL() {   
  73.         return totalCountSQL;   
  74.     }   
  75.   
  76.     public void setTotalCountSQL(String totalCountSQL) {   
  77.         this.totalCountSQL = totalCountSQL;   
  78.     }   
  79.   
  80. }   

新建个接口
  1. package com.yizhou.common.test;   
  2.   
  3. import java.io.Serializable;   
  4. import java.util.List;   
  5.   
  6. /**  
  7.  *   
  8.  * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.  
  9.  * All right reserved.  
  10.  *  
  11.  * @author xuxinlong  
  12.  *  
  13.  *  mail: longxx888@163.com  
  14.  *    
  15.  */  
  16. public interface PaginateInterface extends Serializable {   
  17.     public List getList(PageBean page);   
  18.   
  19.     public String getToolsMenu(PageBean page);   
  20.   
  21.     public Long getTotalCount(PageBean p, String str[], Object ob2[])   
  22.             throws Exception;   
  23.   
  24.     public Long getTotalCount(PageBean page) throws Exception;   
  25.   
  26.     public List getList(PageBean page, String str[], Object ob2[])   
  27.             throws Exception;   
  28. }   

  1. package com.yizhou.common.test;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.List;   
  5.   
  6. import org.hibernate.Query;   
  7. import org.hibernate.Session;   
  8. import org.springframework.orm.hibernate3.HibernateCallback;   
  9. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;   
  10.   
  11. /**  
  12.  *分页核心类  
  13.  * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.  
  14.  * All right reserved.  
  15.  *  
  16.  * @author xuxinlong  
  17.  *  
  18.  *  mail: longxx888@163.com  
  19.  *    
  20.  */  
  21. public class Paginate extends HibernateDaoSupport implements PaginateInterface {   
  22.     /**     
  23.       * 显示用的分页信息     
  24.       */      
  25.      public String getToolsMenu(PageBean p) {      
  26.       StringBuffer str = new StringBuffer("");      
  27.       int next, prev;      
  28.       prev = p.getPage() - 1;      
  29.       next = p.getPage() + 1;      
  30.           
  31.       if (p.getPage() > 1) {      
  32.        str      
  33.          .append("<a href=\"#\" onclick=\"document.forms(0).jumpPage.value=1;document.forms(0).submit();\">首页</a> ");      
  34.       } else {      
  35.           //str.append("<a href=\"#\">首页</a> ");   
  36.           str.append("首页 ");   
  37.       }      
  38.       if (p.getPage() > 1) {      
  39.        str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="      
  40.          + prev + ";document.forms(0).submit();'>上页</a> ");      
  41.       } else {      
  42.           //str.append("<a href=\"#\">上页</a> ");      
  43.           str.append("上页 ");      
  44.       }      
  45.       if (p.getPage() < p.getPageCount()) {      
  46.        str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="      
  47.          + next + ";document.forms(0).submit();'>下页</a> ");      
  48.       } else {      
  49.         //str.append("<a href=\"#\" >下页</a> ");      
  50.           str.append("下页 ");   
  51.       }      
  52.       if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {      
  53.        str.append("<a href=\"#\"  onclick='document.forms(0).jumpPage.value="      
  54.          + p.getPageCount()      
  55.          + ";document.forms(0).submit();'>末页</a>  ");      
  56.       } else {      
  57.        //str.append("<a href=\"#\" >末页</a>  ");   
  58.          str.append("末页  ");   
  59.       }      
  60.       str.append(" 共" + p.getCount() + "条记录");      
  61.       str      
  62.         .append("  每页<SELECT size=1 name=pagesize onchange='this.form.jumpPage.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");      
  63.           
  64.       if (p.getPageSize() == 3) {      
  65.        str.append("<OPTION value=3 selected>3</OPTION>");      
  66.       } else {      
  67.        str.append("<OPTION value=3>3</OPTION>");      
  68.       }      
  69.           
  70.       if (p.getPageSize() == 10) {      
  71.        str.append("<OPTION value=10 selected>10</OPTION>");      
  72.       } else {      
  73.        str.append("<OPTION value=10>10</OPTION>");      
  74.       }      
  75.       if (p.getPageSize() == 20) {      
  76.        str.append("<OPTION value=20 selected>20</OPTION>");      
  77.       } else {      
  78.        str.append("<OPTION value=20>20</OPTION>");      
  79.       }      
  80.       if (p.getPageSize() == 50) {      
  81.        str.append("<OPTION value=50 selected>50</OPTION>");      
  82.       } else {      
  83.        str.append("<OPTION value=50>50</OPTION>");      
  84.       }      
  85.       if (p.getPageSize() == 100) {      
  86.        str.append("<OPTION value=100 selected>100</OPTION>");      
  87.       } else {      
  88.        str.append("<OPTION value=100>100</OPTION>");      
  89.       }      
  90.       str.append("</SELECT>");      
  91.       str.append("条 分" + p.getPageCount() + "页显示 转到");      
  92.       str      
  93.         .append("<SELECT size=1 name=Pagelist onchange='this.form.jumpPage.value=this.value;this.form.submit();'>");      
  94.       for (int i = 1; i < p.getPageCount() + 1; i++) {      
  95.        if (i == p.getPage()) {      
  96.         str.append("<OPTION value=" + i + " selected>" + i      
  97.           + "</OPTION>");      
  98.        } else {      
  99.         str.append("<OPTION value=" + i + ">" + i + "</OPTION>");      
  100.        }      
  101.       }      
  102.       str.append("</SELECT>页");      
  103.       str.append("<INPUT type=hidden  value=" + p.getPage()      
  104.         + " name=\"pages\" > ");      
  105.       str.append("<INPUT type=hidden  value=" + p.getPageSize()      
  106.         + " name=\"pageSize\"> ");      
  107.       return str.toString();      
  108.      }      
  109.           
  110.      /**  
  111.       * 获取总条数  
  112.       */  
  113.      public Long getTotalCount(PageBean p) throws Exception {   
  114.       List list = getHibernateTemplate().find(p.getTotalCountSQL());      
  115.       long count = 0;      
  116.       if (list.size() > 0) {      
  117.        count = new Long(""+list.get(0));      
  118.       }      
  119.       return count;      
  120.      }      
  121.          
  122.      /**  
  123.       * 查询信息进行分页  
  124.       */  
  125.      public List getList(final PageBean p) {   
  126.           return this.getHibernateTemplate().executeFind(new HibernateCallback(){   
  127.              public Object doInHibernate(Session session){   
  128.                  Query q = session.createQuery(p.getListSQL());   
  129.                   q.setFirstResult((p.getPage() - 1) * p.getPageSize());      
  130.                   q.setMaxResults(p.getPageSize());      
  131.                        return q.list();   
  132.             }   
  133.         });   
  134.      }      
  135.          
  136.      /**  
  137.       * 查询信息进行分页  带有参数的  
  138.       */  
  139.      public List getList(final PageBean p,final String str[], final Object ob2[]) {      
  140.          return this.getHibernateTemplate().executeFind(new HibernateCallback(){   
  141.              public Object doInHibernate(Session session){   
  142.                  Query q = session.createQuery(p.getListSQL());   
  143.                  if(str!=null){   
  144.                       for (int i = 0; i < str.length; i++) {      
  145.                        q.setParameter(str[i], ob2[i]);      
  146.                       }      
  147.                  }   
  148.                  q.setFirstResult((p.getPage() - 1) * p.getPageSize());      
  149.                  q.setMaxResults(p.getPageSize());      
  150.                  return q.list();     
  151.             }   
  152.         });        
  153.      }      
  154.         
  155.      /**  
  156.       * 获取总条数   带有参数的  
  157.       */    
  158.      public Long getTotalCount(PageBean p, String str[], Object ob2[])throws Exception {    
  159.          List list=new ArrayList();   
  160.          if(str!=null && str.length>0){   
  161.              list = getHibernateTemplate().findByNamedParam(p.getTotalCountSQL(), str, ob2);   
  162.          }else{   
  163.              list=this.getHibernateTemplate().find(p.getTotalCountSQL());   
  164.          }   
  165.          long count = 0;      
  166.          if (list.size() > 0) {      
  167.            count = (Long)list.get(0);      
  168.           }      
  169.           return count;      
  170.     }      
  171. }   

Action的调用
  1. package com.yizhou.common.test;   
  2.   
  3. import java.util.List;   
  4.   
  5. import javax.servlet.http.HttpServletRequest;   
  6. import javax.servlet.http.HttpServletResponse;   
  7. import javax.servlet.http.HttpSession;   
  8.   
  9. import org.apache.struts.action.Action;   
  10. import org.apache.struts.action.ActionForm;   
  11. import org.apache.struts.action.ActionForward;   
  12. import org.apache.struts.action.ActionMapping;   
  13.   
  14. /**  
  15.  * 分页代码示例 调用  
  16.  * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.  
  17.  * All right reserved.  
  18.  *  
  19.  * @author xuxinlong  
  20.  *  
  21.  */  
  22. public class SplitPageAction extends Action {   
  23.   
  24.     private PaginateInterface pageinate;   
  25.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {   
  26.            
  27.         HttpSession session=request.getSession();   
  28.         Object obj=session.getAttribute("KDUser");   
  29.         if(obj!=null){   
  30.             PageBean pb=new PageBean();   
  31.             String jumpPage=request.getParameter("jumpPage");       
  32.             String pageSize=request.getParameter("pageSize");   
  33.             if(jumpPage!=null && !"".equals(jumpPage) && pageSize!=null && !"".equals(pageSize)){       
  34.                 pb.setPageSize(new Integer(pageSize));   
  35.             }else{   
  36.                 jumpPage="1";   
  37.             }   
  38.             String strSqlCnt="select count(*) from TUsertable";   
  39.             String strSqlInfo="select u from TUsertable u";   
  40.                
  41.             pb.setTotalCountSQL(strSqlCnt);   
  42.             pb.setListSQL(strSqlInfo);   
  43.             pb.setPage(new Integer(jumpPage));   
  44.                
  45.             pb.setCount(this.pageinate.getTotalCount(pb).intValue());   
  46.             List listUser=this.pageinate.getList(pb);   
  47.             request.setAttribute("info"this.pageinate.getToolsMenu(pb));   
  48.             request.setAttribute("listUser", listUser);   
  49.                
  50.         return mapping.findForward("pagelist");   
  51.         }   
  52.            
  53.            
  54.         return mapping.findForward("error");   
  55.     }   
  56.     public PaginateInterface getPageinate() {   
  57.         return pageinate;   
  58.     }   
  59.     public void setPageinate(PaginateInterface pageinate) {   
  60.         this.pageinate = pageinate;   
  61.     }   
  62.        
  63.   
  64. }   

spring文件配置
  1. <bean id="pageinate" class="com.kingdo.common.test.Paginate">  
  2.     <property name="sessionFactory">  
  3.         <ref local="sessionFactory" />  
  4.     </property>  
  5. </bean>  
  6.   
  7. <bean name="/splitPage" class="com.kingdo.common.test.SplitPageAction" singleton="false">  
  8.     <property name="pageinate">  
  9.         <ref bean="pageinate" />  
  10.     </property>  
  11. </bean>  


JSP中使用
  1. <%@ page language="java" pageEncoding="utf-8"%>  
  2. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>  
  3.     
  4. <html>  
  5. <head>  
  6.   
  7.   
  8.     <title>分页演示</title>  
  9.        
  10.     <link href="css/list.css" rel="stylesheet" type="text/css" />  
  11. <link href="css/table.css" rel="stylesheet" type="text/css" />  
  12.   
  13. </head>  
  14.      
  15. <body> <center><font size="5">分页演示</font></center>  
  16.  <form action="splitPage.do" method="post" name="splitPageForm">  
  17.  <input type="hidden" name="jumpPage">  
  18.  <table width="96%" class="center" border="0" cellpadding="0" cellspacing="0">  
  19.  <tr class="table_tr">  
  20.  <td >  
  21.   
  22. <table cla

分享到:
评论

相关推荐

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

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

    spring+struts+hibernate实现分页

    总的来说,通过Spring、Struts和Hibernate的集成,我们可以构建出一个强大的Web应用框架,其中分页功能的实现主要依赖于Spring管理的SessionFactory、Struts的Action和Spring的IoC容器,以及自定义的PageUtil和Page...

    spring+struts+hibernate写的分页代码

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

    spring+struts+hibernate分页

    在IT行业中,SSH(Spring、Struts和Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。SSH框架各自负责不同的职责:Spring作为基础框架提供依赖注入和事务管理;Struts处理MVC...

    spring2.5+struts2.0+hibernate3.0分页

    3. 在服务层,利用Spring的依赖注入获取到DAO实例,然后将分页参数传递给Hibernate进行数据库查询。 4. Hibernate根据参数执行分页查询,返回指定范围的数据集合。 5. 服务层处理这些数据,可能包括计算总页数等逻辑...

    使用Struts + Spring + Hibernate完成分页笔记

    "使用Struts + Spring + Hibernate完成分页笔记"这个主题涵盖了三个关键的Java EE框架:Struts、Spring和Hibernate,它们分别负责表现层、业务逻辑层和数据访问层的管理。下面将详细介绍这三个框架在分页实现中的...

    Struts+Spring+Hibernate开发实例 (SSH整合)

    Struts、Spring、Hibernate(SSH)是Java Web开发中三个非常重要的开源框架,它们分别用于MVC模式的实现、依赖注入和持久化管理。SSH整合是将这三个框架结合在一起,以构建更高效、可维护性更强的企业级应用。本文...

    struts2+spring+hibernate分页实例

    这是一个struts2+hibernate+spring整合的实例,带有分页功能,希望对刚接触struts2的朋友有些帮助。spring2.0,hibernate3.1分页用的是自字义标签,不要少了这个包standard.jar

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

    总的来说,"新闻发布系统JAVA源码(struts+spring+hibernate)"是一个典型的Java Web企业级应用实例,展示了如何利用成熟的开源框架构建复杂的功能,同时保证了代码的可读性和可维护性。对于学习和理解Java Web开发,...

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

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

    ssh(Spring2.5+Struts2.1+Hibernate3.3)三大框架整合

    SSH整合是Java Web开发中常见的技术栈,由Spring、Struts和Hibernate三个开源框架组成,分别负责控制层、表现层和持久层的管理。在这个项目中,SSH版本为Spring 2.5、Struts 2.1和Hibernate 3.3,这是一套相对早期但...

    Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+Jmesatag实例2分页A

    一个Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+JmesaTag实现的强大分页控件例子 里 面有action实现分页和标签实现分页2个例子 action实现的分页 包括了表头排序,导出为PDF,TXT, excel等格式 jar包和数据库...

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

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

    Struts+Hibernate+Spring+JS 分页程序(一)

    总结起来,"Struts+Hibernate+Spring+JS 分页程序"实例展示了四个框架如何协同工作,实现Web应用程序的分页功能。Struts处理请求和响应,Hibernate负责数据库操作,Spring作为整体的协调者,JavaScript则为用户提供...

    Struts+Hibernate+Spring的分页

    在这个"Struts+Hibernate+Spring的分页"项目中,开发者展示了如何在这样的集成环境下实现分页功能。分页是Web应用中常见的需求,它允许用户逐页浏览大量的数据,提高用户体验并减轻服务器压力。 首先,我们来看看...

    网上购物车struts+spring+hibernate实现

    Struts、Spring 和 Hibernate 是Java Web开发中三个非常重要的开源框架,它们共同构成了所谓的SSH(Struts + Spring + Hibernate)框架。这篇描述提到的是一个基于SSH框架实现的网上购物车系统,下面将详细介绍这三...

    struts2+spring+hibernate+生成报表

    在报表生成过程中,Spring可以管理Struts2中的Action实例,负责数据访问对象(DAO)与业务服务对象(Service)的创建和生命周期,确保事务的一致性。此外,Spring还提供了数据访问抽象层,如JdbcTemplate或...

Global site tag (gtag.js) - Google Analytics