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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package org.rcisoft.common.controller;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.common.model.CommonPageGridModel;
import org.rcisoft.common.model.GridModel;
import org.rcisoft.core.model.DlswPageGridModel;
import org.rcisoft.core.util.DlswPageGridUtil;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.HttpServletRequest;
/**
* Created with family.
* author: cy
* Date: 16/6/16
* Time: 上午10:52
* description: 分页初始化
*/
@Slf4j
public class PaginationController<T> extends ResponseController {
protected static final String PAGINATIONKEY = "pagination";
protected static final int INIT_PAGE = 1;
protected static final int INIT_ROWS = 10;
public PaginationController() {
}
public PageUtil<T> getPaginationUtility() {
PageUtil paginationUtility = (PageUtil)request.getAttribute(PAGINATIONKEY);
if(paginationUtility == null) {
throw new NullPointerException("未传递分页参数(page&rows),却在方法中使用paginationUtility对象。");
} else {
return paginationUtility;
}
}
@ModelAttribute
private void setPagnationAttribute(HttpServletRequest request,String gridPager, Integer rows, Integer page, String sort) {
PageUtil _paginationUtility = new PageUtil();
/*dlsw gridModel*/
if(StringUtils.isNotBlank(gridPager)) {
try {
DlswPageGridModel gridModel = DlswPageGridUtil.transform(gridPager);
_paginationUtility.setGridModel(gridModel);
_paginationUtility.setPageNum(gridModel.getNowPage());
_paginationUtility.setPageSize(gridModel.getPageSize());
request.setAttribute(PAGINATIONKEY, _paginationUtility);
return;
} catch (Exception e) {
log.error(e.getMessage());
}
}
if(rows != null && page != null && sort != null ) {
_paginationUtility.setPageNum(page.intValue());
_paginationUtility.setPageSize(rows.intValue());
// _paginationUtility.setOrderBy(sort);
request.setAttribute(PAGINATIONKEY, _paginationUtility);
}
else if(rows != null && page != null) {
_paginationUtility.setPageNum(page.intValue());
_paginationUtility.setPageSize(rows.intValue());
} else if(sort != null) {
// _paginationUtility.setOrderBy(sort);
}
else{
_paginationUtility.setPageNum(INIT_PAGE);
_paginationUtility.setPageSize(INIT_ROWS);
}
request.setAttribute(PAGINATIONKEY, _paginationUtility);
}
/**
* get gridMoel
* @return
*/
public GridModel getGridModelResponse(){
PageUtil pagination = getPaginationUtility();
if(null != getPaginationUtility())
return pagination.getGridModel();
else{
return new CommonPageGridModel();
}
}
}