Spring Data Jpa 实现分页(Spring MVC+easyui)

25 篇文章 1 订阅

spring data jpa很好的对dao层进行了封装,这篇文章主要来写的是实现easyui datagird数据分页,由于各个UI参数不大一样,所以如果使用的是其他UI,得稍作修改。需要说明的是我的代码是在spring mvc框架下的部分代码,部分结构的代码为给出,只给出关键代码。

首先,easy ui向服务端发送请求时,会自动返回4个参数(page,rows,order,sort),先写一个PageContent类:

package module.system.entity;

import javax.persistence.Entity;
import javax.persistence.Id;

public class PageContent {
	
    private String page;
    private String rows;
    private String sort;
    private String order;

	public String getPage() {
		return page;
	}
	public void setPage(String page) {
		this.page = page;
	}
	public String getRows() {
		return rows;
	}
	public void setRows(String rows) {
		this.rows = rows;
	}
	public String getSort() {
		return sort;
	}
	public void setSort(String sort) {
		this.sort = sort;
	}
	public String getOrder() {
		return order;
	}
	public void setOrder(String order) {
		this.order = order;
	}
    
}

下面是Dao层,Data是一个实体类,不用关心,换成你的即可:

import module.app.entity.Data;
import module.system.entity.Department;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DataDao extends JpaRepository<Data,Integer> {
	public Page<Data> findAll(Pageable pageable);
}


下面是controller的部分代码,客户端发来的四个参数会自动赋给page对象:

@RequestMapping(value = "/getAll.do", method = RequestMethod.POST)
	@ResponseBody  //此注解表明返回值跳过视图处理部分,直接写入 http response body中
	public Map getAll(HttpServletRequest request,PageContent page) {
		
		Sort sort = null;
		if(page.getOrder().equals("asc")){
			 sort = new Sort(Direction.ASC, page.getSort());
		}else if(page.getOrder().equals("desc")){
			 sort = new Sort(Direction.DESC, page.getSort());
		}
		int pageNum = Integer.parseInt(page.getPage())-1;
		int rows = Integer.parseInt(page.getRows());
		Pageable pageable = new PageRequest(pageNum,rows,sort);
		Page<Data> list = dataService.findAll(pageable);
			
		Map map = new HashMap();
		map.put("total", list.getTotalElements());//数据总数
		map.put("rows",list.getContent());//分页应该显示的数据
		//在控制台打印
		net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(map);
		System.out.println(jsonArray.toString());
		return map;
	}
由于我的spring MVC框架整合了Json,所以直接返回这个map到客户端会自动转存json数据






评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光光-Leo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值