jsp分页



import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alensic.nursing.utils.StringUtil;

/**
* 分页
*
* @author zhchen
*
*/

public class PagingService{

/**
* 首页
*
* @param pageMap
* @return
*/
public Map doFirstPage(Map pageMap){
Map resultMap = new HashMap();
PageBean page = new PageBean();
//初始化分页参数
if(!initPageBean(pageMap, resultMap, page)) return resultMap;
//当前页
page.setPageNum(1);

//返回结果赋值
setResultMap(resultMap, pageMap, page);

return resultMap;
}

/**
* 下一页
*
* @param pageMap
* @return
*/
public Map doNextPage(Map pageMap){
Map resultMap = new HashMap();
PageBean page = new PageBean();
//初始化分页参数
if(!initPageBean(pageMap, resultMap, page)) return resultMap;
int maxPage = page.getMaxPage();
//当前页
int start = Integer.parseInt(pageMap.get("cur_page_num") == null?"0":pageMap.get("cur_page_num").toString());
if(start+1 > maxPage){

}else{
start = start+1;
}
//当前页
page.setPageNum(start);

//返回结果赋值
setResultMap(resultMap, pageMap, page);

return resultMap;
}

/**
* 上一页
*
* @param pageMap
* @return
*/
public Map doPrePage(Map pageMap){
Map resultMap = new HashMap();
PageBean page = new PageBean();
//初始化分页参数
if(!initPageBean(pageMap, resultMap, page)) return resultMap;
//当前页
int start = Integer.parseInt(pageMap.get("cur_page_num") == null?"0":pageMap.get("cur_page_num").toString());
if(start-1 < 1){

}else{
start = start-1;
}
//当前页
page.setPageNum(start);
//返回结果赋值
setResultMap(resultMap, pageMap, page);

return resultMap;
}

/**
* 最后一页
*
* @param pageMap
* @return
*/
public Map doLastPage(Map pageMap){
Map resultMap = new HashMap();
PageBean page = new PageBean();
//初始化分页参数
if(!initPageBean(pageMap, resultMap, page)) return resultMap;
int maxPage = page.getMaxPage();
//当前页
page.setPageNum(maxPage);
//返回结果赋值
setResultMap(resultMap, pageMap, page);
return resultMap;
}

/**
* 根据页面查询页面信息
*
* @param pageMap
* @return
*/
public Map doGoToPage(Map pageMap){
Map resultMap = new HashMap();
PageBean page = new PageBean();
//初始化分页参数
if(!initPageBean(pageMap, resultMap, page)) return resultMap;
int maxPage = page.getMaxPage();
//最后页码
String pageNum = pageMap.get("page_num") == null?"0":pageMap.get("page_num").toString();
//验证传入的参数是否为数字
boolean isNum = pageNum.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
if(!isNum){
resultMap.put("errorMsg", "页面输入的值不是数字");
return resultMap;
}
int start = Integer.parseInt(pageNum);
if(start < 1){
start = 1;
}else if(start > maxPage){
start = maxPage;
}
//当前页
page.setPageNum(start);
//返回结果赋值
setResultMap(resultMap, pageMap, page);
return resultMap;
}

/**
* 初始化分页参数
*
* @param pageMap 页面传入的参数
* @param resultMap 返回结果
* @param page 分页bean
* @return boolean true:成功,false:失败
*/
private boolean initPageBean(Map pageMap,Map resultMap,PageBean page){
//查询总记录数
String pageMax = pageMap.get("page_max") == null ?"":pageMap.get("page_max").toString();
String queryCondition = pageMap.get("query_condition") == null ?"":pageMap.get("query_condition").toString();
if(StringUtil.isEmpty(pageMax)){
resultMap.put("errorMsg", "没有设置变量--每页显示多少条");
return false;
}
int maxResult = getMaxPage(queryCondition);
page.setMaxResult(maxResult);
page.setPageMax(Integer.parseInt(pageMax));
page.setMaxPage();
return true;
}

/**
* 返回结果赋值
*
* @param resultMap 返回集合
* @param pageMap 页面传入的条件
* @param page page对象
*
*/
private void setResultMap(Map resultMap,Map pageMap,PageBean page){
//查询当前页的信息
String condition = pageMap.get("query_condition") == null ?"":pageMap.get("query_condition").toString();
int pageMax = page.getPageMax();
int pageNum = page.getPageNum();
List list = findPageInfo((pageNum-1)*pageMax, pageMax,condition);
Map pageResultMap = new HashMap();
pageResultMap.put("pageNum", page.getPageNum());
pageResultMap.put("maxResult", page.getMaxResult());
pageResultMap.put("pageMax", page.getPageMax());
pageResultMap.put("maxPage", page.getMaxPage());
resultMap.put("page", pageResultMap);
resultMap.put("query_result", list);
}

/**
* 查询当前页的信息
*
* @param offset 起始行号
* @param size 返回记录数
* @param condition 查询条件
* @return list
*/
public List findPageInfo(int offset,int size,String condition){
return null;
}

/**
* 获取总记录数
*
* @param queryCondition 查询条件
* @return int
*/
public int getMaxPage(String queryCondition) {
int maxPage = 0;
return maxPage;
}
}




/**
* 分页组建
*
* @author zhchen
*/
public class PageBean {

private int pageNum = 1; // 当前页

private int maxResult; // 总记录数

private int pageMax; // 每页显示数

private int maxPage; // 总页数

public int getPageMax() {
return pageMax;
}

public void setPageMax(int pageMax) {
this.pageMax = pageMax;
}

public int getPageNum() {
return pageNum;
}

public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}

public int getMaxPage() {
return maxPage;
}

public void setMaxPage() {
this.maxPage = (maxResult % pageMax == 0 ? maxResult / pageMax
: maxResult / pageMax + 1);
}

public int getMaxResult() {
return maxResult;
}

public void setMaxResult(int maxResult) {
this.maxResult = maxResult;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值