web开发中经常需要用到分页,我然来的做法是每次需要分页时都把代码copy一份,比如有10个页面有分页,那么我分页的代码就有10个版本.这样导致代码的重用性太低了.
那么如何解决呢?
把分页的页面和逻辑抽取出来,提高代码质量和重用性.
(1)分页的页面抽取出来
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <table style="height: 35px"> <tr> <td nowrap="nowrap" style="width: 6%"> <td nowrap="nowrap" style="width: 63%"><span>共<s:property value="view.totalRecords" />条记录, 当前第 <s:if test="view.totalPages==0">0</s:if> <s:else> <s:property value="view.currentPage" /> </s:else>/ <s:property value="view.totalPages" />页, 每页<s:property value="view.recordsPerPage" />条记录 </span></td> <td nowrap="nowrap"> <button type="button" class="btn btn-info" style="padding: 1px 10px" onclick="toPageFirst(${param.action})">首页</button> <button type="button" class="btn btn-info" style="padding: 1px 10px" onclick="toPagePre(${param.action})">上一页</button> <button type="button" class="btn btn-info" style="padding: 1px 10px" onclick="toPageNext(${param.action})">下一页</button> <button type="button" class="btn btn-info" style="padding: 1px 10px" onclick="toPageLast(${param.action})">尾页</button> <button type="button" class="btn btn-info" style="padding: 1px 10px" onclick="toPageGo(${param.action})">转</button> <s:if test="view.totalPages==0"> <input id="view.currentPage" name="view.currentPage" size="5" style="margin-bottom: 0px; width: 50px; ime-mode: disabled; text-align: right; padding: 0px 1px 0px 0px; height: 20px; display: inline-block" value="0" /> </s:if> <s:else> <s:textfield cssClass="form-control" id="view.currentPage" name="view.currentPage" size="5" onkeypress="return onlyNumber(event);" onpaste="return false;" style="margin-bottom: 0px; width: 50px; ime-mode: disabled; text-align: right; padding: 0px 1px 0px 0px; height: 20px; display: inline-block" /> </s:else> <input type="hidden" id="view.thisPage" value="<s:property value='view.currentPage' />" /> <s:hidden id="view.totalPages" name="view.totalPages"></s:hidden> <s:hidden id="view.ascDesc" name="view.ascDesc"></s:hidden> <s:hidden id="view.sortKey" name="view.sortKey"></s:hidden> </td> <td nowrap="nowrap"><span>页</span></td> </tr> </table>
(2)在需要分页的页面中引入上述jsp文件
<s:include value="/WEB-INF/jsp/pageBottom.jsp"> <s:param name="action">usercoupon.query</s:param> </s:include>
注意:必须包含在form表单中
(3)在后台action中
public String execute() throws Exception { reserveCondition(); int start = (Integer.parseInt(view.getCurrentPage()) - 1) * view.getRecordsPerPage(); int count = 0; DetachedCriteria clientVersionDC = DetachedCriteria .forClass(User.class); condition(clientVersionDC); List list = new ArrayList(); count = this.userService.listByDetachedCriteria(list, clientVersionDC, start, view.getRecordsPerPage()); view.setRecordList(list); queryResultList = new ArrayList(); queryResultList.addAll(view.getRecordList()); view.setTotalRecords(count); int totalPages = PageUtil.getTotalPages(view.getTotalRecords(), view.getRecordsPerPage()); view.setTotalPages(String.valueOf(totalPages)); return "list"; }
在js中声明方法时,要注意,左边是错误的
相关推荐
总的来说,`pager.jar`是一个强大的Java Web分页解决方案,通过提供预定义的标签库,使开发者能专注于业务逻辑,而无需关注底层分页细节。它的存在极大提升了开发效率,降低了项目复杂性。在使用过程中,配合详细的...
【Java Web分页项目】是基于Java和JSP技术...总的来说,这个Java Web分页项目提供了一个实用的分页解决方案,通过`PageModel`模型简化了分页逻辑,使得开发人员能够更专注于业务逻辑,同时提高了应用的性能和用户体验。
本项目提供的源代码正是针对这一需求,提供了在Java Web环境中利用Oracle数据库实现分页功能的解决方案。 首先,我们来理解一下分页的基本概念。分页是将数据库查询结果分成若干页展示,用户可以逐页浏览,而不是一...
这个"万能分页3.0"的压缩包很可能包含了一个完整的分页解决方案,包括了Java代码、配置文件、可能的示例JSP页面等,帮助开发者快速集成到自己的项目中。学习和理解这些分页代码,不仅可以提升开发效率,也能加深对...
这个通用分页解决方案的优点在于其封装性和易用性。开发者无需关心分页的具体实现细节,只需关注业务逻辑,提高了开发效率,减少了出错的可能性。同时,由于是通用的,可以跨项目复用,进一步提升代码的可维护性。 ...
Java万能分页标签是一种高效的页面分页解决方案,尤其适合于Java Web开发中处理大量数据的展示场景。这种标签库简化了开发过程,使得开发者无需编写繁琐的分页逻辑,而是通过简单的配置和调用就能实现高效且灵活的...
总的来说,PageHelper作为一款优秀的Java Web分页中间件,其便捷的使用方式和高效的性能,使得它在MyBatis开发中被广泛应用,相比MyBatis内置的简单分页功能,PageHelper提供了更加强大的分页解决方案。
文章通过对Java-Web分页技术的研究,为开发者提供了一种有效管理大量数据和提升用户体验的解决方案。分页技术不仅提高了信息检索的效率,还通过合理管理数据存储、优化查询效率和确保数据的正确显示,确保了系统在...
这个"java通用分页代码实例"提供了一种适用于任意数据库的解决方案,具有高可移植性和易用性。 分页的核心在于对数据库查询结果进行分割,只返回当前页面所需的数据,同时提供翻页链接或按钮,允许用户浏览更多的...
SSM分页解决方案是Web开发中常见的需求,它涉及到SpringMVC、Bootstrap和Mybatis这三个核心技术。本解决方案提供了一个完整的框架,使得开发者可以方便地在Web应用中实现数据的分页展示。 首先,SpringMVC作为Java ...
SSH框架则是Struts、Spring和Hibernate三个开源框架的组合,提供了数据持久化、业务逻辑处理和用户界面控制的完整解决方案。在大型Web应用中,分页功能是必不可少的,它能帮助优化用户体验,提高系统性能,防止一次...
总的来说,"pager-taglib-2.0完整部署运行"是一个关于Java Web分页解决方案的实践教程,涵盖了分页库的安装、使用以及源码学习,对于需要处理大量数据展示的开发者来说,是一个非常实用的工具。
另外,Apache的Commons-Pagination和MyBatis的PageHelper等库提供了更完善的分页解决方案。 7. 分页优化:为了提高性能,可以使用缓存技术(如Redis)来缓存部分分页结果,避免频繁的数据库查询。此外,合理的索引...
SSM分页解决方案基于SpringMVC、Mybatis和EasyUI框架,这三者结合能够构建出功能强大且用户友好的Web应用。以下是关于这个主题的详细讲解。 **SpringMVC** 是Spring框架的一个模块,主要负责处理Web请求。它提供了...
这些标签库提供了一套完整的分页解决方案,只需在JSP页面中插入相应的标签,配合后台的JavaBean或Action类,就可以实现分页功能。DisplayTag支持多种定制,如排序、国际化等。 2. **Servlet + JSP**:通过Servlet...
"Struts+Spring+Hibernate通用分页解决方案"是针对基于这三大框架(Struts、Spring、Hibernate)的Java Web应用所设计的一种高效且可复用的分页策略。以下是关于这个主题的详细解释: 1. **Struts框架**:Struts是...
这里我们通过分析标题、描述以及提供的文件名,可以推测出一个基于自定义标签库(Tag Library)的分页解决方案。 首先,`GenPage.java`可能是一个关键类,它可能负责计算总页数和每页的数据量,根据数据库查询结果...
因此,分页查询成为了一个有效的解决方案,它允许我们每次只加载一部分数据,提高系统的响应速度和用户体验。下面将详细探讨Java中大数据分页算法的相关知识点。 首先,我们需要理解分页的基本概念。分页是将大型...
现代前端框架如Vue.js、React.js和Angular.js也提供了组件化的分页解决方案。 五、优化策略 1. 记录总数计算:如果数据量非常大,计算所有记录总数可能会消耗大量资源。可以采用预估或者懒加载的方式处理。 2. 分页...
### Java分页处理 #### 一、引言与背景 在Web开发中,尤其是在使用Java进行Web开发时,分页处理是一项...总的来说,对于任何涉及大量数据展示的Java Web应用而言,**Pager-taglib**都是一个值得推荐的分页解决方案。