`

Spring JPA 分页结合WEB框架DWZ显示 2种方法

    博客分类:
  • @SSH
 
阅读更多

本文章结合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分页查询与条件分页查询

    在实际应用中,你可能会遇到更多复杂的查询需求,例如嵌套的分页查询、联接查询、聚合函数等,JPA和Spring Data JPA都提供了丰富的API来支持这些操作。例如,你可以使用`@Query`注解自定义SQL或HQL查询,或者利用`...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    **Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...

    SpringBoot中使用Spring-data-jpa分页查询

    在Spring Boot应用中,使用Spring Data JPA进行分页查询是一种高效且简洁的方式。Spring Data JPA是Spring框架的一部分,它提供了对Java Persistence API (JPA) 的简化封装,允许开发者通过面向接口的方式进行数据库...

    基于_Struts_2+Spring+JPA_框架的WEB_应用

    Struts 2、Spring和Java Persistence API (JPA) 是三个强大的开源框架,它们结合在一起可以构建高效、可维护的Web应用程序。下面我们将深入探讨这三个框架以及它们如何协同工作。 **1. Struts 2框架** Struts 2 是...

    SpringBoot+JPA+thymeleaf框架实现增删改查分页显示

    SpringBoot+JPA+thymeleaf框架实现增删改查分页显示,前端通过bootstrap渲染

    spring data jpa分页查询示例代码

    分页查询是数据库查询中的一种常见操作,Spring Data JPA 提供了多种方式来实现分页查询。本文将介绍如何使用 Spring Data JPA 实现分页查询。 分页查询的重要性 在实际项目中,数据量往往很大,为了提高查询效率...

    spring jpa

    Spring JPA,全称为Spring Data JPA,是Spring框架的一部分,专门用于简化Java持久层的开发。它提供了一个抽象层,让开发者可以使用简洁、声明式的编程方式来操作数据库,而无需关注底层的JDBC或者ORM(对象关系映射...

    spring注解+spring data jpa文档+JPA文档.rar

    Spring Data JPA和JPA的结合使用,使得开发人员能够专注于业务逻辑,而不必过于关注底层的数据访问细节。它们降低了与数据库交互的复杂性,提高了开发效率,并且提供了良好的可扩展性和灵活性。 文档"spring注解...

    Struts2 Spring Jpa 配置测试

    Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为MVC框架,负责控制应用程序的流程;Spring框架则是一个全面的后端解决方案,提供了依赖注入(DI)、面向切面...

    Spring Data JPA 笔记

    Spring Data JPA 是一个强大的框架,它简化了Java应用程序与数据库之间的交互,是Spring生态中的重要组成部分。通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于...

    struts2+spring+jpa整合的完整例子(含分页)

    在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

    Spring+Spring MVC+SpringData JPA整合完成增删改查,翻页实例.zip

    Spring框架的核心特性可以用来简化新的Java EE应用的开发,而Spring MVC和Spring Data JPA则是Spring框架中的两个重要模块,分别用于处理Web层的请求和数据库操作。在这个"Spring+Spring MVC+SpringData JPA整合完成...

    SpringMVC+Spring+JPA+Maven框架搭建

    SpringMVC+Spring+JPA+Maven框架的搭建涉及到一系列的技术组件,其中SpringMVC是Spring框架的一个模块,用于构建Web应用,提供MVC架构;Spring框架是一套全面的企业级应用开发框架;JPA(Java Persistence API)是...

    springboot结合jpa实现分页,动态多条件查询

    在本文中,我们将深入探讨如何在Spring Boot项目中利用Java Persistence API (JPA) 实现分页和动态多条件查询,并结合Thymeleaf模板引擎展示数据。Spring Boot以其简化配置和快速启动的优势,已经成为现代Java开发的...

    Spring Data JPA API(Spring Data JPA 开发文档).CHM

    Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。

    Spring JPA 项目简单实现

    Spring JPA,全称Spring Data JPA,是Spring框架的一部分,用于简化Java持久层的开发。它提供了一种声明式的方式来操作数据库,基于ORM(对象关系映射)框架,如Hibernate,使得开发者无需编写大量的SQL语句,而是...

    maven+springmvc+springjpa+hibernate

    在IT行业中,构建高效、可维护的Web应用是至关重要的,而"Maven+SpringMVC+SpringJPA+Hibernate"的组合就是一个常见的解决方案。这个组合提供了全面的开发工具和技术,帮助开发者快速构建基于Java的Web应用程序。...

    springdatajpa 包括jar包

    Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据访问,极大地减少了我们编写DAO层代码的工作量。本篇将深入探讨Spring Data JPA与Struts2、Spring框架的...

    Spring MVC+OpenJPA框架

    Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...

Global site tag (gtag.js) - Google Analytics