# Jfinal 分页方法分装

Jfinal 分页方法分装


  1. Pageparram POJO类
//使用LomBOOK插件
@Data
/**
 * 当前页和当前页的大小
 * */
public class PageParam {

    public PageParam() {
    }
    public int pageNumber;
    public int pageSize;
}

  1. 后端使用Jfinal的分页方法,并且对分页方法进行分装代码如下:
  • 封装分页请求参数
/**
 * 获得分页的请求参数
 * */
public static PageParam GetPageParam(HttpServletRequest request){
    PageParam pageParam=new PageParam();
    String pageNumber = request.getParameter("pageNumber");
    String pageSize = request.getParameter("pageSize");
    //默认为第一页页的大小为10条
    if(pageNumber.equals("") || pageSize.equals("")){
        pageParam.pageSize=10;
        pageParam.pageNumber=1;
    }else {
        pageParam.pageNumber = Integer.parseInt(pageNumber);
        pageParam.pageSize = Integer.parseInt(pageSize);
    }
    return pageParam;
}
  • 封装分页查询方法
/**
 * 分页查询Mysql
 */
public Page<Record> GetPageList(HttpServletRequest request, String sql, HashMap<String, Object> maps) {
    HashMap<String, String> map = BaseService.GetParam(request);
    PageParam pageParam = GetPageParam(request);
    String sqlbyFile = readSql(sql, maps);
    if(sqlbyFile.startsWith("select *")){
        sqlbyFile=sqlbyFile.replace("select *","");
    }
    Page<Record> paginate = Db.use(Multidb.dbmysql).paginate(pageParam.pageNumber, pageParam.pageSize, "select *", sqlbyFile);
    Page page=new Page();
    page.setPageNumber(paginate.getPageNumber());
    page.setPageSize(paginate.getPageSize());
    page.setTotalPage(paginate.getTotalPage());
    page.setTotalRow(paginate.getTotalRow());
    List<Object> list=new ArrayList<Object>();
    if(paginate.getList().size()>0){
        for(int i=0;i<paginate.getList().size();i++){
            List<Record> list1 = paginate.getList();
            list.add(list1.get(i).getColumns());
        }
    }
    page.setList(list);
    return page;
}
  1. 接口实现类返回分页
override fun getUserList(req: HttpServletRequest): RetObj {
    try{
        val sql="select * from t_user"
            return RetObj(true,GetPageList(req, sql,null))

    }catch (e:Exception){
        e.printStackTrace()
            return RetObj(false,e.message)
    }
}
  1. 返回分页json如下
"code": 200,
"data":{
"list":[{"password": "21232f297a57a5a743894a0e4a801fc3", "role_id": 1, "id": "0",],
"pageNumber": 1,
"pageSize": 10,
"totalPage": 2,
"totalRow": 13,
"firstPage": true,
"lastPage": false
}
发布了123 篇原创文章 · 获赞 9 · 访问量 3987

猜你喜欢

转载自blog.csdn.net/qq_37248504/article/details/103707293
今日推荐