使用模糊分页需要3个参数:关键字:key,当前页:page,查询内容个数:count
核心代码:
//所有菜单列表+分页
private void foodList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("page");
//模糊查询 关键字
String key = request.getParameter("foodName");
if(null==page) {
page="";
}
if(null==key) {
key="";
}
Integer count = menuService.count(key);
PageUtils pageUtils = new PageUtils(page,6,count);
//查找所有菜品并分页
List<food> list = menuService.foodList(key,(pageUtils.getCurrPage()-1)*6,6);
request.setAttribute("pageUtils", pageUtils);
request.setAttribute("list", list);
request.setAttribute("key", key);
request.getRequestDispatcher("/front/detail/caidan.jsp").forward(request, response);
}
Html页面:
<a href="<%=basePath%>/menu?method=foodList&page=1&foodName=${key}">首页</a>
<a href="<%=basePath%>/menu?method=foodList&page=${pageUtils.prevPage}&foodName=${key}">上一页</a>
<a href="<%=basePath%>/menu?method=foodList&page=${pageUtils.nextPage}&foodName=${key}">下一页</a>
<a href="<%=basePath%>/menu?method=foodList&page=${pageUtils. lastPage}&foodName=${key}">尾页</a>
附件:pageUtils代码:
package com.baidu.utils;
public class PageUtils {
private String page; //当前页
private int pageSize; //每页显示数目
private int count; //总数据个数
public PageUtils(String page, int pageSize, int count) {
super();
this.page = page;
this.pageSize = pageSize;
this.count = count;
//初始化当前页
initCurrPage();
//初始化最后一页
initLastPage() ;
//初始化下一页
initNextPage() ;
//初始化上一页
initPrevPage();
}
private int currPage;
private int nextPage;
private int lastPage;
private int prevPage;
public int getNextPage() {
return nextPage;
}
public int getLastPage() {
return lastPage;
}
public int getPrevPage() {
return prevPage;
}
public int getPageSize() {
return pageSize;
}
public int getCurrPage() {
return currPage;
}
private void initCurrPage() {
if(null ==page|| "".equals(page)) {
page="1";
}
currPage=Integer.parseInt(page);
}
private void initLastPage() {
lastPage=count/pageSize;
if(count%pageSize !=0) {
lastPage++;
}
}
private void initNextPage() {
nextPage=currPage==lastPage?lastPage:currPage+1;
}
private void initPrevPage() {
prevPage=currPage==1?currPage:currPage-1;
}
}