`

java web 分页解决方案

阅读更多

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中声明方法时,要注意,左边是错误的

 

 

  • 大小: 22.3 KB
分享到:
评论

相关推荐

    Java分页jar包pager.jar

    总的来说,`pager.jar`是一个强大的Java Web分页解决方案,通过提供预定义的标签库,使开发者能专注于业务逻辑,而无需关注底层分页细节。它的存在极大提升了开发效率,降低了项目复杂性。在使用过程中,配合详细的...

    java web分页项目

    【Java Web分页项目】是基于Java和JSP技术...总的来说,这个Java Web分页项目提供了一个实用的分页解决方案,通过`PageModel`模型简化了分页逻辑,使得开发人员能够更专注于业务逻辑,同时提高了应用的性能和用户体验。

    java web与Oracle数据的分页功能

    本项目提供的源代码正是针对这一需求,提供了在Java Web环境中利用Oracle数据库实现分页功能的解决方案。 首先,我们来理解一下分页的基本概念。分页是将数据库查询结果分成若干页展示,用户可以逐页浏览,而不是一...

    java万能分页代码

    这个"万能分页3.0"的压缩包很可能包含了一个完整的分页解决方案,包括了Java代码、配置文件、可能的示例JSP页面等,帮助开发者快速集成到自己的项目中。学习和理解这些分页代码,不仅可以提升开发效率,也能加深对...

    java通用分页含使用文档

    这个通用分页解决方案的优点在于其封装性和易用性。开发者无需关心分页的具体实现细节,只需关注业务逻辑,提高了开发效率,减少了出错的可能性。同时,由于是通用的,可以跨项目复用,进一步提升代码的可维护性。 ...

    最好最好的java万能分页标签

    Java万能分页标签是一种高效的页面分页解决方案,尤其适合于Java Web开发中处理大量数据的展示场景。这种标签库简化了开发过程,使得开发者无需编写繁琐的分页逻辑,而是通过简单的配置和调用就能实现高效且灵活的...

    好用的JAVA WEB分页中间件,比mybatis内置的分页好用.zip

    总的来说,PageHelper作为一款优秀的Java Web分页中间件,其便捷的使用方式和高效的性能,使得它在MyBatis开发中被广泛应用,相比MyBatis内置的简单分页功能,PageHelper提供了更加强大的分页解决方案。

    基于Java-Web的分页技术研究.pdf

    文章通过对Java-Web分页技术的研究,为开发者提供了一种有效管理大量数据和提升用户体验的解决方案。分页技术不仅提高了信息检索的效率,还通过合理管理数据存储、优化查询效率和确保数据的正确显示,确保了系统在...

    java通用分页代码实例.rar

    这个"java通用分页代码实例"提供了一种适用于任意数据库的解决方案,具有高可移植性和易用性。 分页的核心在于对数据库查询结果进行分割,只返回当前页面所需的数据,同时提供翻页链接或按钮,允许用户浏览更多的...

    SSM分页解决方案-Bootstrap

    SSM分页解决方案是Web开发中常见的需求,它涉及到SpringMVC、Bootstrap和Mybatis这三个核心技术。本解决方案提供了一个完整的框架,使得开发者可以方便地在Web应用中实现数据的分页展示。 首先,SpringMVC作为Java ...

    java web中的struts分页组件

    SSH框架则是Struts、Spring和Hibernate三个开源框架的组合,提供了数据持久化、业务逻辑处理和用户界面控制的完整解决方案。在大型Web应用中,分页功能是必不可少的,它能帮助优化用户体验,提高系统性能,防止一次...

    pager-taglib-2.0完整部署运行

    总的来说,"pager-taglib-2.0完整部署运行"是一个关于Java Web分页解决方案的实践教程,涵盖了分页库的安装、使用以及源码学习,对于需要处理大量数据展示的开发者来说,是一个非常实用的工具。

    java 技术 问题 分页

    另外,Apache的Commons-Pagination和MyBatis的PageHelper等库提供了更完善的分页解决方案。 7. 分页优化:为了提高性能,可以使用缓存技术(如Redis)来缓存部分分页结果,避免频繁的数据库查询。此外,合理的索引...

    SSM分页解决方案-easyui

    SSM分页解决方案基于SpringMVC、Mybatis和EasyUI框架,这三者结合能够构建出功能强大且用户友好的Web应用。以下是关于这个主题的详细讲解。 **SpringMVC** 是Spring框架的一个模块,主要负责处理Web请求。它提供了...

    java分页控件.rar

    这些标签库提供了一套完整的分页解决方案,只需在JSP页面中插入相应的标签,配合后台的JavaBean或Action类,就可以实现分页功能。DisplayTag支持多种定制,如排序、国际化等。 2. **Servlet + JSP**:通过Servlet...

    Struts+Spring+Hibernate通用分页解决方案

    "Struts+Spring+Hibernate通用分页解决方案"是针对基于这三大框架(Struts、Spring、Hibernate)的Java Web应用所设计的一种高效且可复用的分页策略。以下是关于这个主题的详细解释: 1. **Struts框架**:Struts是...

    Java实现真分页.自己领悟.

    这里我们通过分析标题、描述以及提供的文件名,可以推测出一个基于自定义标签库(Tag Library)的分页解决方案。 首先,`GenPage.java`可能是一个关键类,它可能负责计算总页数和每页的数据量,根据数据库查询结果...

    JAVA大数据分页算法

    因此,分页查询成为了一个有效的解决方案,它允许我们每次只加载一部分数据,提高系统的响应速度和用户体验。下面将详细探讨Java中大数据分页算法的相关知识点。 首先,我们需要理解分页的基本概念。分页是将大型...

    基于Java-Web的分页技术研究.zip

    现代前端框架如Vue.js、React.js和Angular.js也提供了组件化的分页解决方案。 五、优化策略 1. 记录总数计算:如果数据量非常大,计算所有记录总数可能会消耗大量资源。可以采用预估或者懒加载的方式处理。 2. 分页...

Global site tag (gtag.js) - Google Analytics