`

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整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

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

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

    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)是...

    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