`

springmvc分页

 
阅读更多

 

最近做的项目都用到Pageable分页,感觉挺好用的,就把它记下来,以后去别的地方也会用的着

想用Pageable,要导入jar:spring-data-commons-1.7.0.RELEASE.jar

 

先建个Page的实体类用于后面的操作

public class Pager implements Serializable {
	
	private static final long serialVersionUID = 1236926132859752284L;
	// 倒序还是顺序
	private String order;
	// 排序的字段
	private String sort;
	// 当前页
	private int page = 1;
	// 每页分页的行数
	private int rows = 10;
	private Object[] values;
	// 数据的条数
	private long total;
	// 总页数
	private long allPage;

	public Pager() {
	}

	public Pager(int page, int rows, String sort, String order, Object[] values) {
		this.page = page;
		this.rows = rows;
		this.sort = sort;
		this.order = order;
		this.values = values;

	}

	public Object[] getValues() {
		return values;
	}

	public void setValues(Object[] values) {
		this.values = values;
	}

	public String getOrder() {
		return order;
	}

	public void setOrder(String order) {
		this.order = order;
	}

	public String getSort() {
		return sort;
	}

	public void setSort(String sort) {
		this.sort = sort;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}

	public long getTotal() {
		return total;
	}

	public void setTotal(long total) {
		this.total = total;
	}

	public long getAllPage() {
		return allPage;
	}

	public void setAllPage() {
		if (total % this.rows == 0) {
			allPage = total / rows;
		} else {
			allPage = total / rows + 1;
		}
	}

	/**
	 * 
	 * 方法描述:获取分页对象 创建人:dujiewei 创建时间:2015-4-15 下午5:07:22
	 */
	public static Pageable getPageable(int page, int rows) {
		Pageable pageable = new PageRequest(page, rows);
		return pageable;
	}

	/**
	 * 
	 * 方法描述:获取分页对象
	 */
	public static Pageable getPageable(Pager pager) {

		int page = pager.getPage();
		int rows = pager.getRows();
		String sort = pager.getSort();
		String order = pager.getOrder();
		Pageable pageable = null;
		if (null == sort || "".equals(sort)) {
			pageable = new PageRequest(page, rows);
		} else {
			pageable = new PageRequest(page, rows,
					Sort.Direction.fromStringOrNull(order), sort);
		}

		return pageable;
	}

	@Override
	public String toString() {
		return "Pager [order=" + order + ", sort=" + sort + ", page=" + page
				+ ", rows=" + rows + ", values=" + Arrays.toString(values)
				+ ", total=" + total + ", allPage=" + allPage + "]";
	}

}

 

上面的代码有一段代码写的是获取分页对象

 */
	public static Pageable getPageable(int page, int rows) {
		Pageable pageable = new PageRequest(page, rows);
		return pageable;
	}

	/**
	 * 
	 * 方法描述:获取分页对象 
	 */
	public static Pageable getPageable(Pager pager) {

		int page = pager.getPage();
		int rows = pager.getRows();
		String sort = pager.getSort();
		String order = pager.getOrder();
		Pageable pageable = null;
		if (null == sort || "".equals(sort)) {
			pageable = new PageRequest(page, rows);
		} else {
			pageable = new PageRequest(page, rows,
					Sort.Direction.fromStringOrNull(order), sort);
		}

		return pageable;
	}

 这段代码才是关键  它是将page对象封装进pageable里面。有了它,我们可以在action或者controller里面写业务逻辑的时候直接使用。demo如下:

比如说我们在用springmvc的时候用到分页

@RequestMapping("/getFinanceLog")
	public ModelAndView getSettleList(Pager page,FinanceLogVO financeLog, HttpServletRequest request,HttpServletResponse response) {
		ModelAndView view=new ModelAndView();
		Map<String, Object> map=new HashMap<String, Object>();
		map.put("ORDER_ID", financeLog.getORDER_ID());  //根据订单编号去查询
		map.put("PAY_TYPE", financeLog.getPAY_TYPE());  //根据支付方式去查询
		map.put("beginDate", request.getParameter("beginDate")); 
		map.put("endDate", request.getParameter("endDate"));   //时间条件查询
		map.put("BUSI_TYPE", financeLog.getBUSI_TYPE());//根据业务类型查询	
		map.put("TRADE_ID",financeLog.getTRADE_ID()); //根据财务流水号查询
		if(StrUtil.isNotNull(request.getParameter("beginDate"))&&StrUtil.isNotNull(request.getParameter("endDate"))){
			map.put("allDate","allDate");//如果前台两个参数都传过来,那么在数据库里面就用 between and来取时间区间
		}
		if(StrUtil.isNotNull(request.getParameter("beginDate"))&&StrUtil.isNull(request.getParameter("endDate"))){
			map.put("startDate","startDate");
		}
		if(StrUtil.isNotNull(request.getParameter("endDate"))&&StrUtil.isNull(request.getParameter("beginDate"))){
			map.put("endsDate","endsDate");
		}
		page.setRows(PAGE_SIZE);  //每页多少数据
		Pageable pageable = Pager.getPageable(page);  //页数封装
		String userId = (String) request.getSession().getAttribute("UID");
		try {
			if (StrUtil.isNotNull(userId)) {
				UserVO user = LoginHelper.getSessionForUser(request); //获取登录角色
		        String userType = user.getUSER_TYPE();    
		        if(userType.equals(Constant.USER_TYPE.SHOP)){         //如果查询出来的用户角色是商家
		            StoreVO store = storeService.selectStoreByUserId(user.getUSER_ID());    //根据登录角色的userId查询商铺
		            map.put("STORE_ID", store.getSTORE_ID());    //如果是商家的话,只查询商家的订单流水
		        }
			Map<String, Object> list=financeLogService.selectLogList(map,pageable);  //查询
			view.addObject("logList", list.get("rows"));
			view.addObject("page_info", list.get("page_info"));
			view.addObject("param", map);
			view.setViewName("zhaiqqadmin/finance/financeLog_list");
		 }else{
			// 跳转到登录页面
			view.setViewName("/zhaiqqadmin/login");
		 }
		} catch (Exception e) {
			logger.error(e);
		}
		return view;
	}
	

 将Pager.getPageable(page)封装进pageable里面,pageable封装的是page对象。里面的各种参数可以自己设定。在查询的时候要将pageable对象传进去。这样就可以分页了。

分享到:
评论

相关推荐

    mybatis+springmvc分页

    总的来说,"mybatis+springmvc分页"项目展示了如何在Java Web开发中集成Mybatis和SpringMVC来实现高效、便捷的数据操作,特别是针对大量数据的分页展示。通过这个项目,开发者可以学习到数据库操作、MVC架构、以及...

    基于springmvc实现分页查询

    本篇文章将详细探讨如何基于Spring MVC实现分页查询,这对于任何处理大量数据的Web应用都是至关重要的。 首先,理解分页的基本概念。分页是将大型数据集划分为较小、更易管理的部分,以提高用户体验并减少服务器...

    javaee-SpringMVC-Mybatis 分页插件

    本项目“javaee-SpringMVC-Mybatis 分页插件”显然是一个结合了这三个框架实现的分页功能示例。下面我们将深入探讨这些技术及其分页插件的应用。 1. **JavaEE**:JavaEE(Java Platform, Enterprise Edition)是...

    springmvc mybatis 分页查询

    5. 用户点击分页链接时,发送带有页码信息的请求,SpringMVC Controller捕获该请求,更新Service层的查询条件,再执行分页查询。 此外,为了优化性能,可以考虑使用缓存技术,如Spring的Cache抽象,或者MyBatis自身...

    springmvc_分页

    在"springmvc_分页"这个主题中,我们将探讨如何在Spring MVC应用中实现高效的分页功能。 在Web应用中,分页是必不可少的,特别是在处理大量数据时,以提高用户体验和系统性能。Spring MVC 提供了多种方法来实现分页...

    SpringMvc 简单分页

    在Spring MVC框架中,实现简单分页是一项常见的需求,它能帮助我们有效地管理大量数据,提高用户体验。分页是将数据库中的数据分成多个部分,每次只加载一部分到前端展示,而不是一次性加载所有数据,这对于处理大...

    datatables1.10+springMVC分页

    日常情况下使用前端插件进行分页,通过后端解析datatables请求来的参数进行request参数解析(demo中对通过datatable包中对datatables发送过来的参数进行一个解析器的操作)通过控制器action进行service数据解析调用...

    springmvc增删改,分页,导入数据等功能

    在本文中,我们将深入探讨SpringMVC在实现数据管理中的关键功能,包括增删改操作、分页以及数据导入。 1. **增删改操作**:在SpringMVC中,增删改(CRUD)操作是数据库交互的基础。通过Controller层接收HTTP请求,...

    springmvc3分页程序

    **SpringMVC分页程序详解** SpringMVC是Spring框架的一部分,专为构建Web应用程序而设计,它提供了模型-视图-控制器(MVC)架构模式的实现,使得开发人员可以轻松地处理HTTP请求和响应。在这个“springmvc3分页程序...

    spring3+springMVC+mybatis+easyui 增删查改以及分页源码

    在本项目中,我们主要探讨的是一个基于Spring 3、Spring MVC、MyBatis和EasyUI的简单Web应用,用于实现基本的CRUD(增、删、查、改)操作和分页功能。这个项目使用了Maven作为构建工具,确保了依赖管理和项目构建的...

    springmvc 分页查询的简单实现示例代码

    在开发Web应用时,列表数据的分页展示是常见的需求,Spring MVC作为一款强大的MVC框架,提供了方便的方式来实现这个功能。本篇文章将探讨如何在Spring MVC中进行分页查询的简单实现,主要关注于通过修改SQL语句来...

    老司机带你分析SpringMVC框架设计原理与实现

    在深入探讨SpringMVC框架的设计原理与实现细节之前,我们先来明确一下SpringMVC的基本概念及其在现代Web开发中的地位。SpringMVC是Spring框架的一部分,它是一种基于Java的开源Web应用程序框架,用于简化Web层的开发...

    SpringMVC-BootStrap3

    当我们谈论“BootStrap3+SpringMVC分页”时,意味着我们要在SpringMVC驱动的后端服务上实现使用Bootstrap3样式展示的前端分页功能。这通常涉及到以下步骤: 1. **数据获取**:在SpringMVC控制器中,我们需要编写一...

    spring mvc学习+数据分页+数据导入导出

    总的来说,本学习资源涵盖了Spring MVC 3的基础知识,包括注解驱动的控制器、数据库操作、数据分页、数据导入导出以及异常处理等重要概念。通过实践这些内容,你将能够构建出功能完备且健壮的Web应用程序。

    springmvc+mybatis通用分页

    总的来说,整合SpringMVC和MyBatis并实现通用分页,需要理解这两个框架的工作原理,掌握它们的配置,以及如何在Java代码中使用它们。同时,对于分页功能,需要理解数据库的分页机制,并能将其应用到实际的SQL查询中...

    SpringMVC+MyBatis+EasyUI简单分页Demo

    在本项目"SpringMVC+MyBatis+EasyUI简单分页Demo"中,我们将探讨如何结合这三种技术实现一个具备基本分页功能的Web应用。SpringMVC是Spring框架的一部分,负责处理HTTP请求和响应;MyBatis是一个轻量级的持久层框架...

    springmvc+mybatis+分页查询

    在本项目中,我们主要探讨的是如何利用Spring MVC和MyBatis两大流行框架构建一个具有分页查询功能的Web应用。Spring MVC作为控制层,负责处理HTTP请求和响应,而MyBatis则作为数据访问层,用于处理数据库交互。下面...

    整合了springMVC和通用分页以及通用mapper的框架

    这个名为"整合了springMVC和通用分页以及通用mapper的框架"的项目,就是针对这一目标而设计的。它结合了SpringMVC、通用分页和通用Mapper三个核心组件,为Web应用程序提供了强大的数据访问和页面展示能力。 ...

    spring + springmvc + mybatis 整合 及 mybatis-pagehelper分页

    通过这个压缩包,开发者可以快速地搭建一个具备分页功能的SSM(Spring、SpringMVC、MyBatis)项目,并以此为基础进行自己的业务开发。这不仅节省了时间,也降低了出错的可能性,是学习和实践Java Web开发的好资料。

    springmvc+mybatis+分页整合

    1. **配置环境**:首先,确保Eclipse已安装Maven插件,导入相关依赖到pom.xml文件中,包括SpringMVC、MyBatis和分页插件的依赖。 2. **配置SpringMVC**:创建SpringMVC的配置文件(如:servlet-context.xml),配置...

Global site tag (gtag.js) - Google Analytics