`
lzj520
  • 浏览: 213400 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自己写了一个ssh分页

阅读更多
关于分页经验不是很多,让我来做分页,我习惯用这样的一种方法,以前用ASP和PHP的时候也是这样来处理的。也没怎么认真去检查是否科学,不过先做出来再说,交出一个不怎么好的作品总比交不出作品好。不好的话还可以去完善和优化嘛。

首先,先创建一个显示每一页(有若干条数据)的方法(如下面的hfindAll方法),决定好每一页接收一个页码参数,然后显示该页码里的数据。比如有100条数据,那么分10页,那第几页显示第几条至第几条数据。然后再创建一个方法是用于在view层显示页数(如下面的amountPage方法),最后是在view层上为每一页数的数字加上超链接。

以下是主要代码:
public class LoginDAO extends HibernateDaoSupport {
private int PageSize =5;
/*设置每页的数据条数*/

 public Integer amountPage(){
     Session session =this.getSession();
  Query query = session.createQuery("from Login");
  query.setCacheable(true);
  int a = query.list().size()%PageSize;
/*总记录数/每页数据数,判断是否能整除*/
  Integer amount;
  if(a!=0){
   amount = query.list().size()/PageSize+1;
/*如果整除有余数,则页数加1*/
  }else{
   amount = query.list().size()/PageSize;
/*如果整除没余数,则直接总记录数/每页数据数*/
  }
  return amount;
 }

 public List hfindAll(String pagenum) {
     Session session =this.getSession();
  Query query = session.createQuery("from Login");
  if (pagenum == null){
/*如果pagenum是空,则数据从第一条开始*/
  query.setFirstResult(0);
/*设置查询开始的第几条数据,这里是从第1条开始*/
  query.setMaxResults(PageSize);
/*设置查询数据条数,这里是5条*/
  query.setCacheable(true);
/*设置一级缓存*/
  }else{
   Integer p = (Integer.valueOf(pagenum)-1) * PageSize;
   query.setFirstResult(p);
   query.setMaxResults(PageSize);
   query.setCacheable(true);
  }
  return query.list();
 }
}

然后需要解决的是一些数据传递,类型转换和在view层显示的问题,主要代码如下:

在ACTION里:
String strpagenum = request.getParameter("pagenum");
  List results= loginManage.hfind(strpagenum);
  Integer amountPage = loginManage.amountPage();
    if(results!=null){
             HttpSession session=request.getSession();
             session.setAttribute("results",results);
             session.setAttribute("amountPage",amountPage);
             return mapping.findForward("ok");
         }
    return mapping.findForward("fail");

在view视图里:
显示每页数据的代码:

 <logic:iterate id="element" name="results">    <tr>
   <td width="100"><input type="checkbox" name="select" value="<bean:write name="element" property="id"/>"><bean:write name="element" property="id"/></td>
   <td width="100"><bean:write name="element" property="name"/> </td>
   <td width="100"><bean:write name="element" property="password"/></td>
   </tr></logic:iterate>

显示页码的代码:
<%
   int i;
  int a=Integer.parseInt(session.getAttribute("amountPage").toString());
   for (i=1;i<=a;i++){
   out.println("<tr>");  
          out.println("<td><a href='display.do?pagenum="+ i +"'>"+ i +"</a></td>");    
          out.println("</tr>");    
   }
    %>


分享到:
评论

相关推荐

    SSH通用分页组件 SSH分页

    SSH分页 分页 通用分页 struts2分页

    很好的一个SSH分页小例子

    这个例子中,"ssh分页例子_1"可能是一个包含源代码的文件,包含了上述各个部分的实现,如Action类、Service接口和实现、DAO接口和实现以及对应的JSP页面。通过对这些文件的分析和学习,你可以更好地理解SSH框架如何...

    SSH 通用分页插件

    因此,分页功能成为了一个必要的优化手段。 SSH分页插件的核心功能是将数据库查询结果按照一定的页码和每页记录数进行切割,使得用户可以逐页浏览,提高用户体验并减轻服务器负担。这个插件通常会集成到SSH框架中,...

    强大ssh分页实现

    好强大的ssh分页,封装的很好,适合初学者研究下,可以更快帮助初学者掌握分页机制,学起来不是很容易,但是当你学会了就豁然开朗,其他的分页直接可以藐视了,哈。。。我就是这样学过来的 有相关教程:...

    struts hibernate spring 分页ssh分页

    综上所述,SSH分页是Java企业级开发中的一个重要技术,它涉及到了Struts的控制层、Hibernate的数据访问层和Spring的整合及服务层,是提升应用性能和用户体验的关键手段之一。通过熟练掌握SSH分页,开发者可以更高效...

    ssh分页经典代码

    2. **创建分页类**: 设计一个基础的分页类,包含当前页数、每页条数、总页数、总记录数等属性。这个类可以作为所有分页操作的基类,提供计算总页数和是否为最后一页等通用方法。 3. **编写分页服务**: 在Service层...

    ssh 分页 控件 (分页插件)

    总的来说,"ssh 分页 控件 (分页插件)"是一个便捷的工具,能够帮助SSH框架的开发者在JSP页面中轻松实现数据分页功能,提升项目开发效率和用户体验。通过对分页插件的配置和使用,我们可以更专注于业务逻辑,而不用...

    SSH分页_完整例子

    SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架,它将MVC设计模式、依赖注入和持久层管理结合在一起,提供了强大的企业级应用开发能力。在这个"SSH分页_完整例子"中,我们将深入探讨如何在SSH框架...

    SSH+Mysql无刷新分页实例

    无刷新分页技术是现代网页设计中的一个重要特性,它允许用户在不重新加载整个页面的情况下浏览页面的不同部分。在SSH框架中实现这一功能,通常会用到AJAX(Asynchronous JavaScript and XML)技术。AJAX可以向服务器...

    SSH分页完整实例

    在Struts中,我们可以创建一个Action类来处理分页请求。这个Action类会接收前端传来的参数,如当前页数和每页显示的数量,然后调用业务层进行处理。 Spring作为应用上下文和依赖注入框架,负责管理对象的生命周期和...

    SSH分页技术详解与实例

    SSH分页技术是Java Web开发中一种常见的数据处理方法,主要应用于大数据量的展示场景,如用户在浏览商品列表或论坛帖子时,通过分页来避免一次性加载所有数据导致的性能问题和用户体验下降。SSH指的是Spring、Struts...

    SSH实现分页实例

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

    SSH分页组件

    开发者可以创建一个包含当前页数和每页记录数属性的类,并在Action中处理这些参数以计算数据库查询的开始位置和结束位置。此外,Struts的Result类型也可以配合自定义拦截器来实现动态分页链接的生成。 2. **Spring...

    SSH分页查询方法

    "SSH分页查询方法"是指在使用Struts2、Hibernate和Spring三大Java开发框架集成开发时实现的分页功能。 首先,Struts2是一个MVC(Model-View-Controller)框架,它负责处理用户请求并将其转发到相应的控制器,进而...

    用ssh实现的一个简单的分页

    这个名为"用ssh实现的一个简单的分页"的项目,旨在为初学者提供一个关于如何在SSH框架下实现分页功能的示例。分页在大型数据集的展示中至关重要,它能够提高用户体验,避免一次性加载过多数据导致的性能问题。 首先...

    ssh分页完整实例数据库mysql

    总结起来,这个压缩包提供的SSH分页实例数据库MySQL连接,旨在帮助初学者掌握SSH框架在实际项目中的应用,尤其是如何利用SSH实现数据的CRUD操作和分页功能,对于提升Java Web开发技能具有很大价值。通过实践这个实例...

    SSH分页(很实用)

    SSH分页技术是Java开发中一个非常实用的功能,尤其在处理大数据量的Web应用时,它能够有效地提高用户体验,避免一次性加载过多数据导致的性能问题。SSH是指Spring、Struts和Hibernate这三大开源框架的组合,它们在...

    ssh分页显示实例代码

    这个一个关于String+Spring+Hibernate框架,可以分页显示的实例代码.

    ssh 分页组件,含使用示例

    在给定的文件中,`Page.java`可能是一个代表分页信息的实体类,包含如当前页码、每页记录数、总记录数、总页数等属性,以及相应的getter和setter方法。这样的类有助于封装分页参数,并在前后端之间传递。 `...

    一个ssh分页的源代码

    在这个“一个ssh分页的源代码”中,我们可以看到一个已经实现好的分页功能,它应该可以帮助开发者快速地在自己的项目中引入分页功能,而无需从零开始编写代码。 Struts2是ActionServlet的升级版,它引入了拦截器...

Global site tag (gtag.js) - Google Analytics