Spring Data Jpa 实现分页(Spring MVC+easyui)
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数据
版权声明:本文为博主原创文章,未经博主允许不得转载。