jsp分页
select 字段列表 from 表名 limit m,n;
m: 表示起始记录,并且从0开始
n: 查询记录的个数,每页记录数
共多少页
有没有上一页
有没有下一页
当前页
注:分页信息类Page
注2:创建分页信息辅助类PageUtil
public static Page createPage(int everyPage,int totalCount,int currentPage)
everyPage: 程序员定
totalCount: 总记录数,查询数据库表记录 select count(*) from 表名
currentPage: 从默认第一页开始,下一页= 当前页+1 上一页 = 当前页-1
依据查询语句获得集合: select 字段列表 from 表名 limit m,n;
m: beginIndex
n: everyPage
具体实现:::
UserBiz:
//分页
public int getCont();
public List<User> findByPage(Page page);
- 1
- 2
- 3
UserBizImpl:
@Override
public int getCont() {
String sql = "select count(*) as count from user";
CountUtil count = (CountUtil) udao.get(sql, CountUtil.class);
return count.getCount();
}
@Override
public List<User> findByPage(Page page) {
String sql = "select * from user limit "+page.getBeginIndex()+", "+page.getEveryPage();
return udao.query(sql, User.class);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
servlet::UserServlet
int everyPage = 5;//每页记录数
int totalCount = ubiz.getCont();//获取总记录数
//点击链接重新获取当前页
String scurrentPage = request.getparameter("currentPage");
int currentPage = 1; //当前页,默认1
if(scurrentPage == null){
currentPage = 1;//从第一页开始访问
}else{
currentPage = integer.parseInt(scurrentPage);
}
//分页信息
Page page = PageUtil.createPage(everyPage, totalCount, currentPage);
//分页数据信息
List<User> list = ubiz.findByPage(page);
request.setattribute("page", page);
request.setAttribute("list", list);
//转发到userlist.jsp
request.getRequestDispatcher("/back/manager/userlist.jsp").forward(request, response);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
userlist.jsp中的分页表现
<table width="461" height="24" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="199">当前为第${page.currentPage}页,共${page.totalPage}页</td>
<td width="256">
<c:choose>
<c:when test="${page.hasPrePage}">
<a href="<%=path %>/user.do?method=list¤tPage=1">首页</a> |
<a href="<%=path %>/user.do?method=list¤tPage=${page.currentPage -1 }">上一页</a>
</c:when>
<c:otherwise>
首页 | 上一页
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${page.hasNextPage}">
<a href="<%=path %>/user.do?method=list¤tPage=${page.currentPage + 1 }">下一页</a> |
<a href="<%=path %>/user.do?method=list¤tPage=${page.totalPage }">尾页</a>
</c:when>
<c:otherwise>
下一页 | 尾页
</c:otherwise>
</c:choose>
</td>
</tr>
</table>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
附::::page类(分页信息实体类)
public class Page {
private int everyPage; //每页显示记录数
private int totalCount; //总记录数
private int totalPage; //总页数
private int currentPage; //当前页
private int beginIndex; //查询起始点
private boolean hasPrePage; //是否有上一页
private boolean hasNextPage; //是否有下一页
public Page(int everyPage, int totalCount, int totalPage,
int currentPage,int beginIndex, boolean hasPrePage,
boolean hasNextPage) { //自定义构造方法
this.everyPage = everyPage;
this.totalCount = totalCount;
this.totalPage = totalPage;
this.currentPage = currentPage;
this.beginIndex = beginIndex;
this.hasPrePage = hasPrePage;
this.hasNextPage = hasNextPage;
}
///////get,set方法略
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
附:pageutil 分页信息辅助类
public class PageUtil {
//创建Page对象
public static Page createPage(int everyPage,int totalCount,int currentPage) {//创建分页信息对象
everyPage = getEveryPage(everyPage);
currentPage = getCurrentPage(currentPage);
int totalPage = getTotalPage(everyPage, totalCount);
int beginIndex = getBeginIndex(everyPage, currentPage);
boolean hasPrePage = getHasPrePage(currentPage);
boolean hasNextPage = getHasNextPage(totalPage, currentPage);
return new Page(everyPage, totalCount, totalPage, currentPage,
beginIndex, hasPrePage, hasNextPage);
}
// 以下方法辅助创建Page对象
public static int getEveryPage(int everyPage) { //获得每页显示记录数
return everyPage == 0 ? 10 : everyPage;
}
public static int getCurrentPage(int currentPage) { //获得当前页
return currentPage == 0 ? 1 : currentPage;
}
public static int getTotalPage(int everyPage,int totalCount) {//获得总页数
int totalPage = 0;
if(totalCount != 0 &&totalCount % everyPage == 0) {
totalPage = totalCount / everyPage;
} else {
totalPage = totalCount / everyPage + 1;
}
return totalPage;
}
public static int getBeginIndex(int everyPage,int currentPage) {//获得起始位置
return (currentPage - 1) * everyPage;
}
public static boolean getHasPrePage(int currentPage) {//获得是否有上一页
return currentPage == 1 ? false : true;
}
public static boolean getHasNextPage(int totalPage, int currentPage) { //获得是否有上一页
return currentPage == totalPage || totalPage == 0 ? false : true;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
相关阅读
session.invalidate(); 是把session内的所有属性 都清除,session.removeAttribute("uiUsers");是清除session中的 "uiUsers" 属性,就
由于在公司里使用的是企业级证书,不需发布到APPStore上,那么热更新就有必要写起来了,毕竟要是线上出了Bug,心里还是慌得一笔的哈哈。
1. 什么是jspJSP是Java Server Page的缩写,是由Sun公司倡导,许多公司参与,于1999年推出的一种Web服务设计标准。JSP已经成为开发动态
今天在搭建ssm框架式进行测试,发现请求的jsp文件的图片无法显示。查看页面源代码为:jsp页面的代码为:<body> <table width="100%" b
Bang 神的JSPatch 很是牛逼 还记得当初 热更新问题 苹果粑粑的 大清洗嘛. 不过经过实践 , 目前只要配置公秘钥 还是可