加油,新时代打工人!
package com.love.starter.common.util;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* 计算页开始及结束位置
*
* @author Administrator
*/
public class Page {
public static final int PAGE_SIZE_TWENTY = 20;
public static final int PAGE_SIZE_TEN = 10;
public static final int PAGE_SIZE_TWELVE = 12;
/**
* 默认每页数量
*/
private static final int DEFAULT_SIZE = 15;
public static final int PAGE_SIZE_SEVEN = 7;
public static final int PAGE_SIZE_FIFTY = 50;
public static final int PAGE_SIZE_EIGHT = 8;
public static final int PAGE_SIZE_FOURTEEN = 14;
public static final int PAGE_SIZE_FIVE = 5;
/**
* 开始位置
*/
private final int start;
/**
* 结束位置
*/
private final int end;
/**
* 第几页
*/
private int pageIndex = 1;
/**
* 每页记录数
*/
private int pageSize = DEFAULT_SIZE;
/**
* 默认第一页,每页15行
*
* @param request
*/
public Page(HttpServletRequest request) {
String index = getPageIndex(request);
String size = getPageSize(request);
if (Nulls.isNotEmpty(index)) {
pageIndex = Integer.parseInt(index);
}
if (Nulls.isNotEmpty(size)) {
pageSize = Integer.parseInt(size);
}
start = (pageIndex - 1) * pageSize + 1;
end = pageIndex * pageSize;
}
/**
* @param request 请求
* @param index 默认第几页
* @param size 默认每页记录数量
*/
public Page(HttpServletRequest request, int index, int size) {
pageIndex = getPageIndex(request) == null ? index : Integer.parseInt(getPageIndex(request));
pageSize = getPageSize(request) == null ? size : Integer.parseInt(getPageSize(request));
start = (pageIndex - 1) * pageSize + 1;
end = pageIndex * pageSize;
}
private static String getPageSize(HttpServletRequest request) {
return request.getParameter("pageSize");
}
private static String getPageIndex(HttpServletRequest request) {
return request.getParameter("pageIndex");
}
public void setQueryCondition(Map map) {
map.put("START", start);
map.put("END", end);
map.put("start", start);
map.put("end", end);
}
/**
* 设置查询分页
*
* @param request
* @param map
*/
public static void setQueryByPage(HttpServletRequest request, Map map) {
new Page(request).setQueryCondition(map);
}
/**
* 在返回结果中增加页码
*
* @param mv
*/
public void setReturnValue(ModelAndView mv) {
mv.addObject("start", start);
}
/**
* 设置查询尺寸
*
* @param map
*/
public static void getSize(Map map) {
int pageIndex = map.get("pageIndex") == null ? 1 : Integer.parseInt(map.get("pageIndex").toString());
int pageSize = map.get("pageSize") == null ? DEFAULT_SIZE : Integer.parseInt(map.get("pageSize").toString());
map.put("START", (pageIndex - 1) * pageSize);
map.put("END", pageIndex * pageSize - 1);
}
public int getStart() {
return this.start;
}
public int getEnd() {
return this.end;
}
public int getPageIndex() {
return this.pageIndex;
}
public int getPageSize() {
return this.pageSize;
}
static class PageUtil {
static void setPage(HttpServletRequest request, int pageSize, Map queryMap, ModelAndView mv) {
Page page = new Page(request, 1, pageSize);
page.setQueryCondition(queryMap);
page.setReturnValue(mv);
}
}
}