首页 > 代码库 > 分页实现方法
分页实现方法
方法一 前台页面的定义分页展示 easy ui
pagination : true, pageSize : 5, pageList : [ 5, 10, 15, 20, 50 ],
每次页面操作或者查询请求CURD时 响应头部都会带着页面page和rows属性。所以后台可以指定接收参数 进行分页。
例如 在初始化的时候。我们会创建一个page的 bean用来接收前台传入的page 和 row、
public class PageBean { private Integer page; private Integer rows; public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } public Integer getRows() { return rows; } public void setRows(Integer rows) { this.rows = rows; } }
再定义一个 pagination来方便json数组操作。
public class Pagination { private List<Object> rows; private String total; public List getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } public String getTotal() { return total; } public void setTotal(String total) { this.total = total; } }
Pagination p = new Pagination(); p = dayRecruitService.find(page, ds,date_start,date_end,account); //注意序列化。这样可以直接引用,例如 row.customer.organization.organizationName String json = "{\"total\":" + p.getTotal() + " , \"rows\":" + JSON.toJSONString(p.getRows(),SerializerFeature.DisableCircularReferenceDetect) + "}"; return json;
直接调用find方法从数据库取出数据就可以了。结果会转化成json数据集然后显示在前台页面的。
我自己写了一个简单的分页实现,比上边方法直接,直观。
@RequestMapping("/find_test") private void find_test(HttpServletRequest request, HttpServletResponse response) { //将登陆写死在数据中 Account account = this.getStaticAccount(); try { //获得后台的 page row http会包含在post头中 int currentPage = Integer.parseInt(request.getParameter("page")); int pageSize = Integer.parseInt(request.getParameter("rows")); //有查询条件的 序列成map来管理 String date_start = request.getParameter("date_start")== null?"":request.getParameter("date_start"); String date_end = request.getParameter("date_end")== null?"":request.getParameter("date_end"); String orgid = request.getParameter("orgid")== null?"":request.getParameter("orgid"); String customerid = request.getParameter("customer.id")== null?"":request.getParameter("customer.id"); Map<String, Object> searchmap = new HashMap<String, Object>(); searchmap.put("date_start", date_start); searchmap.put("date_end", date_end); searchmap.put("orgid", orgid); searchmap.put("customer.id", customerid); // 分页显示 List<DayRecruit> dayRecruits = this.dayRecruitService.findByPagination(currentPage , pageSize,searchmap,account); int total = this.dayRecruitService.getTotal(); response.setContentType("text/html;charset=utf-8"); //{"total":10 , "rows":[{},{}]} String json = "{\"total\":"+total+" , \"rows\":"+JSON.toJSONString(dayRecruits,SerializerFeature.DisableCircularReferenceDetect)+"}"; response.getWriter().write(json); } catch (Exception e) { e.printStackTrace(); } }
牵扯到的hql关键语句为
Query query = session.createQuery(hql); query.setFirstResult((currentPage-1)*pageSize); //从第0条开始 query.setMaxResults(pageSize); //取出10条 List<DayRecruit> dayrecruit = query.list(); return dayrecruit;
分页实现方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。