分页的使用场景:当需要展示的字段太多,记录的条数太多的情况下,如果采用一次性加载全部的记录,会导致加载页面缓慢,响应速度慢, 影响系统的流程程度,故所以采用分页的方法加载数据是十分必要的
步骤如下:
jqgrid 分页的原理其实是以post 或get方式向后台发送了请求,携带的几个参数都是固定了,例如page,rows,total,...等等
这些参数需要被后台的Controller 获取到
下面是后台代码:
JavaScript Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
@ SuppressWarnings(
"unchecked")
@ RequestMapping(value = ApiUtil.loadMarketFunds, method = RequestMethod.POST) public CallBack < BasicFund > loadMarketFundds(FundSelectRequest request, @ RequestParam(value = "rows", required = false)Integer rows, @ RequestParam(value = "page", required = false)Integer page, @ RequestParam(value = "sidx", required = false)String sidx, @ RequestParam(value = "qwery", required = false)String qwery, @ RequestParam(value = "sord", required = false)String sord) { System.out.println( " rows:" + rows + " page:" + page + " sidx:" + sidx + " sord:" + sord + " qwery:" + qwery); System.out.println(request); long t0 = System.currentTimeMillis(); //根据条件查找对应的全市场基金的基金经理 Map < String, Object > resultMap = basicFundService.loadMarketFunds(request); List < BasicFund > marketFunds = (List < BasicFund > )resultMap.get( "filterList"); CallBack < BasicFund > back = handListPage(rows, page, sidx, sord, marketFunds); long tx = System.currentTimeMillis(); log.debug( "loadFundManages spend :" + (tx - t0)); return back; } /** * jqGrid处理list分页的逻辑 * @param rows * @param page * @param sidx * @param sord * @param pageList * @return */ private < T > CallBack < T > handListPage(Integer rows, Integer page, String sidx, String sord, List < T > pageList) { if (StringUtils.isNotBlank(sord) && StringUtils.isNotBlank(sidx)) { SortUtil.sortByBeanFiled(pageList, sidx, sord); } Integer size = 0; Integer tota |