1 说明
如果你也在用Mybatis,建议尝试该分页插件,个人感觉这个是最方便,超好用的分页插件。
该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
2 使用方法
2.1 架包
在pom.xml文件中加入如下代码:
com.github.pagehelper
pagehelper
4.2.1
2.2 PageHelper的配置
在我的mybatis-config.xml中加入如下代码:
2.3 插入page.js文件
文件内容如下(有点小长):
/**
* Created by zxm on 2017/3/31.
*/
$.fn.extend({
"initPage":function(listCount,currentPage,fun){
var maxshowpageitem = $(this).attr("maxshowpageitem");
if(maxshowpageitem!=null&&maxshowpageitem>0&&maxshowpageitem!=""){
page.maxshowpageitem = maxshowpageitem;
}
var pagelistcount = $(this).attr("pagelistcount");
if(pagelistcount!=null&&pagelistcount>0&&pagelistcount!=""){
page.pagelistcount = pagelistcount;
}
var pageId = $(this).attr("id");
page.pageId=pageId;
if(listCount<0){
listCount = 0;
}
if(currentPage<=0){
currentPage=1;
}
page.setPageListCount(pageId,listCount,currentPage,fun);
}
});
var page = {
"maxshowpageitem":5,//最多显示的页码个数
"pagelistcount":10,//每一页显示的内容条数
/**
* 初始化分页界面
* @param listCount 列表总量
*/
"initWithUl":function(pageId,listCount,currentPage){
var pageCount = 1;
if(listCount>0){
var pageCount = listCount%page.pagelistcount>0?parseInt(listCount/page.pagelistcount)+1:parseInt(listCount/page.pagelistcount);
}
var appendStr = page.getPageListModel(pageCount,currentPage);
$("#"+pageId).html(appendStr);
},
/**
* 设置列表总量和当前页码
* @param listCount 列表总量
* @param currentPage 当前页码
*/
"setPageListCount":function(pageId,listCount,currentPage,fun){
listCount = parseInt(listCount);
currentPage = parseInt(currentPage);
page.initWithUl(pageId,listCount,currentPage);
page.initPageEvent(pageId,listCount,fun);
if(typeof fun == "function"){
fun(currentPage);
}
},
"initPageEvent":function(pageId,listCount,fun){
$("#"+pageId +">li[class='pageItem']").on("click",function(){
page.setPageListCount(pageId,listCount,$(this).attr("page-data"),fun);
});
},
"getPageListModel":function(pageCount,currentPage){
var prePage = currentPage-1;
var nextPage = currentPage+1;
var prePageClass ="pageItem";
var nextPageClass = "pageItem";
if(prePage<=0){
prePageClass="pageItemDisable";
}
if(nextPage>pageCount){
nextPageClass="pageItemDisable";
}
var appendStr ="";
appendStr+="首页 ";
appendStr+="<上一页 ";
var miniPageNumber = 1;
if(currentPage-parseInt(page.maxshowpageitem/2)>0&¤tPage+parseInt(page.maxshowpageitem/2)<=pageCount){
miniPageNumber = currentPage-parseInt(page.maxshowpageitem/2);
}else if(currentPage-parseInt(page.maxshowpageitem/2)>0&¤tPage+parseInt(page.maxshowpageitem/2)>pageCount){
miniPageNumber = pageCount-page.maxshowpageitem+1;
if(miniPageNumber<=0){
miniPageNumber=1;
}
}
var showPageNum = parseInt(page.maxshowpageitem);
if(pageCount"+pageNumber+"";
}
appendStr+="下一页> ";
appendStr+="尾页 ";
return appendStr;
}
}
3 Java代码和JSP中实现
准备工作做好了,可以实现啦;
3.1 Java中的代码
导包是必须滴!!!
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
其次再看关键的两句代码:
@RequestMapping(value = "/findAllUser")
public String findAllUser(Model model) {
PageHelper.startPage(CommonConstant.INITPAGE, CommonConstant.USERTABLENUM);
List userList = userService.findAllUserList();
PageInfo userListPageInfo = new PageInfo<>(userList);
model.addAttribute("usermes", userList);
model.addAttribute("pageUser",userListPageInfo);
this.currentUserName = null;
return "userManage";
}
/**
* Title: findUserListByPage
* Description: 翻页查询UserList
* @author 刘冬冬
* @Date 2017年5月16日
* @param model
* @param goalPage
* @return
*/
@RequestMapping(value = "/findUserListByPage")
public String findUserListByPage(Model model, int goalPage) {
PageHelper.startPage(goalPage, CommonConstant.USERTABLENUM);
if(this.currentUserName != null){
List userList = userService.selectByUserName(this.currentUserName);
PageInfo userListPageInfo = new PageInfo<>(userList);
for (User user : userList) {
if(user.getLoginTime()!= null){
Date date = new Date(((User) user).getLoginTime());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
user.setLoginTimeFormate(format.format(date));
}else{
user.setLoginTimeFormate("从未登录");
}
}
model.addAttribute("usermes", userList);
model.addAttribute("pageUser",userListPageInfo);
}else{
List userList = userService.findAllUserList();
PageInfo userListPageInfo = new PageInfo<>(userList);
model.addAttribute("usermes", userList);
model.addAttribute("pageUser",userListPageInfo);
}
return "userManage";
}
这么长一段代码关键的就是两句,现在把它拿出来:
PageHelper.startPage(goalPage, CommonConstant.USERTABLENUM);
PageInfo userListPageInfo = new PageInfo<>(userList);
3.2 jsp中的代码
- style="color: #A8A8A8" onclick=" return document.execCommand('refresh',false,0)">首页
- style="color: #A8A8A8" onclick=" return document.execCommand('refresh',false,0)">上一页
- style="color: #A8A8A8" onclick=" return document.execCommand('refresh',false,0)">下一页
- style="color: #A8A8A8" onclick=" return document.execCommand('refresh',false,0)">尾页
其中也实现了按钮禁用功能,当时首页或者尾页时,就不能点击事件并且变灰。
不足之处请指教修改,不断总结与学习!!!