本文章结合Spring JPA 与 DWZ框架,描述分页。总共有2中方式,第一种使用Spring DATA JPA 的Page自带的分页功能,第二种使用类似Hibernate的分页方式。第一种相对于第一种较简单。
前端内容显示一致:
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><%@ include file="/WEB-INF/jsp/layouts/dwz-taglib.jsp"%> <form id="pagerForm" method="post" action="<c:url value='/system/info/channelType/list.htm'/>"> <input type="hidden" name="pageNum" value="${currentPage}" /> <input type="hidden" name="numPerPage" value="${numPerPage}" /> </form> <!--搜索栏开始--> <!--搜索栏结束--> <!--表格列表开始--> <div class="pageContent"> <div class="panelBar"> <ul class="toolBar"> <li><a class="add" target="navTab" rel="addChannelType" href="<c:url value='/system/info/channelType/add.htm'/>" title="添加分类"><span>添加</span></a></li> <li><a class="edit" target="navTab" rel="editChannelType" href="<c:url value='/system/info/channelType/edit'/>/{slt_objId}.htm" title="编辑分类"><span>编辑</span></a></li> <li><a class="delete" target="ajaxTodo" href="<c:url value='/system/info/channelType/delete'/>/{slt_objId}.htm" title="你确定要删除吗?"><span>删除</span></a></li> </ul> </div> <table class="table" width="99%" layoutH="200" rel="jbsxBox"> <thead> <tr> <th width="50">NO.</th> <th>名称</th> <th>编码</th> </tr> </thead> <tbody> <c:forEach var="item" items="${itemList}" varStatus="s"> <tr target="slt_objId" rel="${item.id }"> <td>${s.index + 1}</td> <td>${item.name}</td> <td>${item.code}</td> </tr> </c:forEach> </tbody> </table> <div class="panelBar"> <div class="pages"> <span>显示</span> <select name="numPerPage" onchange="navTabPageBreak({numPerPage:this.value})"> <c:forEach begin="10" end="40" step="10" varStatus="s"> <option value="${s.index}" ${numPerPage eq s.index ? 'selected="selected"' : ''}>${s.index}</option> </c:forEach> </select> <span>条,共${totalCount}条</span> </div> <div class="pagination" targetType="navTab" totalCount="${totalCount}" numPerPage="${numPerPage}" pageNumShown="${pageNumShown}" currentPage="${currentPage}"></div> </div> </div> <!--表格列表结束-->
该JSP内容结合DWZ做分页列表。
方式一:
Spring提供了两个分页的类,分别是pager和pageable,下面使用这两个类完成web数据的分页及显示.
控制层:
@RequestMapping("/list") public String list(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception { QueryParameter parameter = QueryParameter.createQuery(); Integer currentPage = 0; Integer pageNum = getIntParameter(request, "pageNum"); if (pageNum != null) { currentPage = getIntParameter(request, "pageNum"); currentPage = currentPage - 1; } Page<ChannelType> pct = channelTypeService.getPage(parameter, currentPage, Constant.DEFAULT_PAGE_SIZE); addPageResultModel(pct, model); return getListPage(); } protected void addPageResultModel(Page<ChannelType> pct, Model model) { int currentPage = pct.getNumber() + 1; model.addAttribute("totalCount", pct.getTotalElements()); model.addAttribute("numPerPage", Constant.DEFAULT_PAGE_SIZE); model.addAttribute("pageNum", currentPage); model.addAttribute("pageNumShown", pct.getTotalPages()); model.addAttribute("currentPage", currentPage); model.addAttribute("itemList", pct.getContent()); }
服务层:
public Page<ChannelType> getPage(QueryParameter parameter, int pageStart, int pageSize) throws Exception { return channelTypeDao.findAll(DynamicSpecifications.buildAndFilter( parameter.getFilterList(), ChannelType.class), new PageRequest( pageStart, pageSize)); }
DAO层:
public interface ChannelTypeDao extends PagingAndSortingRepository<ChannelType, Long>, JpaSpecificationExecutor<ChannelType> { }
在这里ChannelTypeDao继承了PagingAndSortingRepository,很好的实现了分页功能。
方式二:
相关推荐
在实际应用中,你可能会遇到更多复杂的查询需求,例如嵌套的分页查询、联接查询、聚合函数等,JPA和Spring Data JPA都提供了丰富的API来支持这些操作。例如,你可以使用`@Query`注解自定义SQL或HQL查询,或者利用`...
**Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...
在Spring Boot应用中,使用Spring Data JPA进行分页查询是一种高效且简洁的方式。Spring Data JPA是Spring框架的一部分,它提供了对Java Persistence API (JPA) 的简化封装,允许开发者通过面向接口的方式进行数据库...
Struts 2、Spring和Java Persistence API (JPA) 是三个强大的开源框架,它们结合在一起可以构建高效、可维护的Web应用程序。下面我们将深入探讨这三个框架以及它们如何协同工作。 **1. Struts 2框架** Struts 2 是...
SpringBoot+JPA+thymeleaf框架实现增删改查分页显示,前端通过bootstrap渲染
分页查询是数据库查询中的一种常见操作,Spring Data JPA 提供了多种方式来实现分页查询。本文将介绍如何使用 Spring Data JPA 实现分页查询。 分页查询的重要性 在实际项目中,数据量往往很大,为了提高查询效率...
Spring JPA,全称为Spring Data JPA,是Spring框架的一部分,专门用于简化Java持久层的开发。它提供了一个抽象层,让开发者可以使用简洁、声明式的编程方式来操作数据库,而无需关注底层的JDBC或者ORM(对象关系映射...
Spring Data JPA和JPA的结合使用,使得开发人员能够专注于业务逻辑,而不必过于关注底层的数据访问细节。它们降低了与数据库交互的复杂性,提高了开发效率,并且提供了良好的可扩展性和灵活性。 文档"spring注解...
Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为MVC框架,负责控制应用程序的流程;Spring框架则是一个全面的后端解决方案,提供了依赖注入(DI)、面向切面...
Spring Data JPA 是一个强大的框架,它简化了Java应用程序与数据库之间的交互,是Spring生态中的重要组成部分。通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于...
在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。
在本文中,我们将深入探讨如何在Spring Boot项目中利用Java Persistence API (JPA) 实现分页和动态多条件查询,并结合Thymeleaf模板引擎展示数据。Spring Boot以其简化配置和快速启动的优势,已经成为现代Java开发的...
Spring框架的核心特性可以用来简化新的Java EE应用的开发,而Spring MVC和Spring Data JPA则是Spring框架中的两个重要模块,分别用于处理Web层的请求和数据库操作。在这个"Spring+Spring MVC+SpringData JPA整合完成...
SpringMVC+Spring+JPA+Maven框架的搭建涉及到一系列的技术组件,其中SpringMVC是Spring框架的一个模块,用于构建Web应用,提供MVC架构;Spring框架是一套全面的企业级应用开发框架;JPA(Java Persistence API)是...
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
Spring JPA,全称Spring Data JPA,是Spring框架的一部分,用于简化Java持久层的开发。它提供了一种声明式的方式来操作数据库,基于ORM(对象关系映射)框架,如Hibernate,使得开发者无需编写大量的SQL语句,而是...
在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...
Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据访问,极大地减少了我们编写DAO层代码的工作量。本篇将深入探讨Spring Data JPA与Struts2、Spring框架的...
Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...