`
sd8089730
  • 浏览: 259440 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

SSH高效分页

阅读更多
package com.yizhou.common.test;

/**
 *   
 * Copyright @ 2008 YIZHOU SOFTWARE Co. Ltd.
 * All right reserved.
 *
 * @author xuxinlong
 *
 *  mail: longxx888@163.com
 *  
 */
public class PageBean {
    private int count = 0; // 记录总数

    private int pageSize = 20; // 每页显示记录数

    private int pageCount = 0; // 总页数

    private int page = 1; // 当前页数

    private String totalCountSQL;// 得到总记录数sql语句

    private String listSQL;// 得到查询记录sql语句

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        if (pageSize != 0) {
            pageCount = count / pageSize;
            if (count % pageSize != 0) {
                pageCount++;
            }
        }
        this.count = count;
    }

    public String getListSQL() {
        return listSQL;
    }

    public void setListSQL(String listSQL) {
        this.listSQL = listSQL;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }

    public int getPageSize() {
        return pageSize;
    }

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

    public String getTotalCountSQL() {
        return totalCountSQL;
    }

    public void setTotalCountSQL(String totalCountSQL) {
        this.totalCountSQL = totalCountSQL;
    }

}

新建个接口
package com.yizhou.common.test;

import java.io.Serializable;
import java.util.List;

/**
 * 
 * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
 * All right reserved.
 *
 * @author xuxinlong
 *
 *  mail: longxx888@163.com
 *  
 */
public interface PaginateInterface extends Serializable {
    public List getList(PageBean page);

    public String getToolsMenu(PageBean page);

    public Long getTotalCount(PageBean p, String str[], Object ob2[])
            throws Exception;

    public Long getTotalCount(PageBean page) throws Exception;

    public List getList(PageBean page, String str[], Object ob2[])
            throws Exception;
}

package com.yizhou.common.test;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 *分页核心类
 * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
 * All right reserved.
 *
 * @author xuxinlong
 *
 *  mail: longxx888@163.com
 *  
 */
public class Paginate extends HibernateDaoSupport implements PaginateInterface {
    /**   
      * 显示用的分页信息   
      */   
     public String getToolsMenu(PageBean p) {   
      StringBuffer str = new StringBuffer("");   
      int next, prev;   
      prev = p.getPage() - 1;   
      next = p.getPage() + 1;   
       
      if (p.getPage() > 1) {   
       str   
         .append("<a href=\"#\" onclick=\"document.forms(0).jumpPage.value=1;document.forms(0).submit();\">首页</a> ");   
      } else {   
          //str.append("<a href=\"#\">首页</a> ");
          str.append("首页 ");
      }   
      if (p.getPage() > 1) {   
       str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="   
         + prev + ";document.forms(0).submit();'>上页</a> ");   
      } else {   
          //str.append("<a href=\"#\">上页</a> ");   
          str.append("上页 ");   
      }   
      if (p.getPage() < p.getPageCount()) {   
       str.append("<a href=\"#\" onclick='document.forms(0).jumpPage.value="   
         + next + ";document.forms(0).submit();'>下页</a> ");   
      } else {   
        //str.append("<a href=\"#\" >下页</a> ");   
          str.append("下页 ");
      }   
      if (p.getPageCount() > 1 && p.getPage() != p.getPageCount()) {   
       str.append("<a href=\"#\"  onclick='document.forms(0).jumpPage.value="   
         + p.getPageCount()   
         + ";document.forms(0).submit();'>末页</a>  ");   
      } else {   
       //str.append("<a href=\"#\" >末页</a>  ");
         str.append("末页  ");
      }   
      str.append(" 共" + p.getCount() + "条记录");   
      str   
        .append("  每页<SELECT size=1 name=pagesize onchange='this.form.jumpPage.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");   
       
      if (p.getPageSize() == 3) {   
       str.append("<OPTION value=3 selected>3</OPTION>");   
      } else {   
       str.append("<OPTION value=3>3</OPTION>");   
      }   
       
      if (p.getPageSize() == 10) {   
       str.append("<OPTION value=10 selected>10</OPTION>");   
      } else {   
       str.append("<OPTION value=10>10</OPTION>");   
      }   
      if (p.getPageSize() == 20) {   
       str.append("<OPTION value=20 selected>20</OPTION>");   
      } else {   
       str.append("<OPTION value=20>20</OPTION>");   
      }   
      if (p.getPageSize() == 50) {   
       str.append("<OPTION value=50 selected>50</OPTION>");   
      } else {   
       str.append("<OPTION value=50>50</OPTION>");   
      }   
      if (p.getPageSize() == 100) {   
       str.append("<OPTION value=100 selected>100</OPTION>");   
      } else {   
       str.append("<OPTION value=100>100</OPTION>");   
      }   
      str.append("</SELECT>");   
      str.append("条 分" + p.getPageCount() + "页显示 转到");   
      str   
        .append("<SELECT size=1 name=Pagelist onchange='this.form.jumpPage.value=this.value;this.form.submit();'>");   
      for (int i = 1; i < p.getPageCount() + 1; i++) {   
       if (i == p.getPage()) {   
        str.append("<OPTION value=" + i + " selected>" + i   
          + "</OPTION>");   
       } else {   
        str.append("<OPTION value=" + i + ">" + i + "</OPTION>");   
       }   
      }   
      str.append("</SELECT>页");   
      str.append("<INPUT type=hidden  value=" + p.getPage()   
        + " name=\"pages\" > ");   
      str.append("<INPUT type=hidden  value=" + p.getPageSize()   
        + " name=\"pageSize\"> ");   
      return str.toString();   
     }   
       
     /**
      * 获取总条数
      */
     public Long getTotalCount(PageBean p) throws Exception {
      List list = getHibernateTemplate().find(p.getTotalCountSQL());   
      long count = 0;   
      if (list.size() > 0) {   
       count = new Long(""+list.get(0));   
      }   
      return count;   
     }   
      
     /**
      * 查询信息进行分页
      */
     public List getList(final PageBean p) {
          return this.getHibernateTemplate().executeFind(new HibernateCallback(){
             public Object doInHibernate(Session session){
                 Query q = session.createQuery(p.getListSQL());
                  q.setFirstResult((p.getPage() - 1) * p.getPageSize());   
                  q.setMaxResults(p.getPageSize());   
                       return q.list();
            }
        });
     }   
      
     /**
      * 查询信息进行分页  带有参数的
      */
     public List getList(final PageBean p,final String str[], final Object ob2[]) {   
         return this.getHibernateTemplate().executeFind(new HibernateCallback(){
             public Object doInHibernate(Session session){
                 Query q = session.createQuery(p.getListSQL());
                 if(str!=null){
                      for (int i = 0; i < str.length; i++) {   
                       q.setParameter(str[i], ob2[i]);   
                      }   
                 }
                 q.setFirstResult((p.getPage() - 1) * p.getPageSize());   
                 q.setMaxResults(p.getPageSize());   
                 return q.list();  
            }
        });     
     }   
     
     /**
      * 获取总条数   带有参数的
      */ 
     public Long getTotalCount(PageBean p, String str[], Object ob2[])throws Exception { 
         List list=new ArrayList();
         if(str!=null && str.length>0){
             list = getHibernateTemplate().findByNamedParam(p.getTotalCountSQL(), str, ob2);
         }else{
             list=this.getHibernateTemplate().find(p.getTotalCountSQL());
         }
         long count = 0;   
         if (list.size() > 0) {   
           count = (Long)list.get(0);   
          }   
          return count;   
    }   
}

Action的调用
package com.yizhou.common.test;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * 分页代码示例 调用
 * Copyright @ 2008 NANJING YIZHOU SOFTWARE Co. Ltd.
 * All right reserved.
 *
 * @author xuxinlong
 *
 */
public class SplitPageAction extends Action {

    private PaginateInterface pageinate;
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
        HttpSession session=request.getSession();
        Object obj=session.getAttribute("KDUser");
        if(obj!=null){
            PageBean pb=new PageBean();
            String jumpPage=request.getParameter("jumpPage");    
            String pageSize=request.getParameter("pageSize");
            if(jumpPage!=null && !"".equals(jumpPage) && pageSize!=null && !"".equals(pageSize)){    
                pb.setPageSize(new Integer(pageSize));
            }else{
                jumpPage="1";
            }
            String strSqlCnt="select count(*) from TUsertable";
            String strSqlInfo="select u from TUsertable u";
            
            pb.setTotalCountSQL(strSqlCnt);
            pb.setListSQL(strSqlInfo);
            pb.setPage(new Integer(jumpPage));
            
            pb.setCount(this.pageinate.getTotalCount(pb).intValue());
            List listUser=this.pageinate.getList(pb);
            request.setAttribute("info", this.pageinate.getToolsMenu(pb));
            request.setAttribute("listUser", listUser);
            
        return mapping.findForward("pagelist");
        }
        
        
        return mapping.findForward("error");
    }
    public PaginateInterface getPageinate() {
        return pageinate;
    }
    public void setPageinate(PaginateInterface pageinate) {
        this.pageinate = pageinate;
    }
    

}

spring文件配置

    <bean id="pageinate" class="com.kingdo.common.test.Paginate">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>

    <bean name="/splitPage" class="com.kingdo.common.test.SplitPageAction" singleton="false">
        <property name="pageinate">
            <ref bean="pageinate" />
        </property>
    </bean>


JSP中使用

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
 
<html>
<head>


    <title>分页演示</title>
    
    <link href="css/list.css" rel="stylesheet" type="text/css" />
<link href="css/table.css" rel="stylesheet" type="text/css" />

</head>
  
<body> <center><font size="5">分页演示</font></center>
 <form action="splitPage.do" method="post" name="splitPageForm">
 <input type="hidden" name="jumpPage">
 <table width="96%" class="center" border="0" cellpadding="0" cellspacing="0">
 <tr class="table_tr">
 <td >

<table class="yizhou_table" ">
  <tr class="table_tr"  >
    <th class="table_c_01">用户ID</th>
    <th class="table_c_01">用户名</th>
    <th class="table_c_01">姓名</th>
    <th class="table_c_01">邮箱</th>    
    <th class="table_c_01">性别</th>
    <th class="table_c_01">年龄</th>
    <th class="table_c_01">手机</th>
  </tr>
 <logic:notEmpty name="listUser">
 <logic:iterate id="detial" name="listUser">
  <tr>    
    <td  height="20"> ${detial.userid}</td>   
    <td> ${detial.username}</td>
    <td> ${detial.uname}</td>
    <td> ${detial.email}</td>
    <td> ${detial.sex}</td>
    <td> ${detial.age}</td>
    <td> ${detial.mtel}</td>
  </tr>
</logic:iterate>
</logic:notEmpty>
 <tr>
 
 
  <td colspan="7" align="right" align="left" class="table_c_02" height=28 >
    ${info}
 </td>
 </tr>
</table>

</td></tr></table>
</form>
</body>
</html>

 

分享到:
评论

相关推荐

    SSH实现分页实例

    SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,它整合了三大主流开源框架,用于构建高效、可维护性高的企业级应用程序。在这个"SSH实现分页实例"中,我们将深入探讨如何在SSH框架下实现数据的...

    ssh2分页查询

    SSH2(Spring、Struts2、Hibernate2)是一种经典的Java Web开发框架,它结合了Spring的依赖注入、Struts2的MVC模式以及Hibernate的持久化能力,为开发者提供了高效且灵活的开发环境。在这个“ssh2分页查询”项目中,...

    SSH整合分页Demo入门

    SSH整合是指将Spring、Struts和Hibernate这三大Java开源框架集成在一起,用于构建高效、可扩展的Web应用程序。在这个"SSH整合分页Demo入门"中,我们将深入理解如何在SSH框架下实现数据的分页展示,这对于大型Web应用...

    SSH+Mysql无刷新分页实例

    在IT行业中,SSH和MySQL是两个非常重要的技术组件。...通过整合SSH框架和MySQL数据库,开发者可以构建出高效、响应式的Web应用。在实际项目中,还可以结合其他前端框架如Vue或React,进一步优化分页的实现和性能。

    SSH实现分页

    本文将围绕“SSH实现分页”这一主题,深入探讨如何在Hibernate环境下实现高效的数据分页,以及其在实际项目中的具体应用。 ### 一、SSH框架简介 SSH框架是指Struts2、Spring和Hibernate三个开源框架的组合使用。...

    ssh框架分页案例,简单易懂

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源...通过这个案例,开发者不仅可以学习到SSH框架的基本使用,还能掌握如何在实际项目中实现高效、灵活的分页功能,提升Web开发技能。

    ssh实现分页实例

    SSH(Struts2、Spring和Hibernate)是Java开发中一种常见的Web应用框架组合,用于构建高效、可维护的Web应用程序。SSH框架结合了MVC设计模式、依赖注入和持久层管理,大大简化了开发过程。在这个实例中,我们将探讨...

    ssh2分页类

    SSH2分页类是Spring、Struts2和Hibernate2这三大框架组合应用中,用于处理大量数据分页显示的一种实用工具。在Web开发中,当数据量过大时,一次性加载所有数据不仅会消耗大量服务器资源,也会导致用户界面响应缓慢。...

    ssh 超级分页

    SSH(Secure Shell)是一种网络协议,用于在...通过熟练掌握SSH超级分页,IT高手可以更加高效地处理远程服务器上的大量数据,提高工作效率。了解并运用这些工具和技巧,将有助于在日常的系统管理和故障排查中游刃有余。

    ssh实现分页

    SSH(Struts2 + Spring...综上所述,SSH框架下的分页实现涉及Struts2、Spring和Hibernate等多个层面,通过合理设计和优化,可以提供高效且友好的分页功能。开发者需要熟悉这些组件的用法,并结合实际项目需求进行调整。

    ssh.zip_SSH 数据分页_ssh分页实现

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、简洁的开发环境。在这个名为"ssh.zip_SSH 数据分页_ssh分页实现"的压缩包中,我们可以看到一个关键...

    struts hibernate spring 分页ssh分页

    Struts、Hibernate、Spring是Java开发中常用的三大框架,它们分别负责不同的职责,共同构建了企业级应用的MVC(Model-View-Controller)架构。...通过熟练掌握SSH分页,开发者可以更高效地处理大数据量的展示问题。

    ssh实现简单分页功能

    SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,用于构建高效、可维护的Web应用程序。在这个场景中,我们将讨论如何在SSH框架下实现一个简单的分页功能,以便用户可以更有效地浏览大量的数据。 ...

    简单,高效的ssh分页源码

    根据提供的文件信息,我们可以分析出该代码主要涉及的是SSH(Struts+Spring+Hibernate)框架下的...使用Hibernate作为持久层框架,结合Spring框架管理Hibernate Session的生命周期,最终实现了高效且简单的分页功能。

    ssh 分页组件,含使用示例

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它提供了...通过合理的分页设计,开发者可以轻松地在大量数据中实现高效导航,而无需一次性加载所有数据,这对于提高应用性能和响应速度至关重要。

    SSH分页完整实例

    在本实例中,我们将深入探讨SSH框架下的分页功能实现。 首先,让我们从Struts开始,它是SSH中的用户界面层,负责处理HTTP请求并返回相应的视图。在Struts中,我们可以创建一个Action类来处理分页请求。这个Action类...

    ssh整合 简单分页

    在IT行业中,SSH整合是指将Spring、Struts和Hibernate这三个开源框架进行集成,以构建高效、灵活的企业级Web应用程序。SSH整合提供了模型-视图-控制器(MVC)设计模式的完整实现,使得开发人员可以更方便地管理业务...

    ssh框架的分页功能

    本篇将详细介绍SSH框架下的分页实现。 一、Struts2分页 Struts2作为控制层,负责处理HTTP请求和转发到相应的Action。在SSH框架中,我们可以使用Struts2的拦截器或者自定义插件来实现分页。拦截器可以在Action执行...

    ssh实现分页功能,一个简单的小项目

    SSH(Struts、Spring、Hibernate)是一个经典的Java Web开发框架,用于构建高效、可扩展的企业级应用程序。在这个小项目中,我们将重点讨论如何利用SSH来实现分页功能,这是一个常见的需求,特别是在处理大量数据时...

    ssh分页经典代码

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了Struts的MVC模式、Spring的依赖注入以及Hibernate的对象关系映射...同时,也要关注分页的性能和代码的简洁性,以确保项目的高效稳定运行。

Global site tag (gtag.js) - Google Analytics