javaweb中的分页实现

1,创建PageBean
package zf.zjq.domain;
 
import java.util.List;
 
public class PageBean <T> {
//每页显示的用户信息
private List<T> data;
// 当前页数
private int curPage;
//每一页显示几个数据
private int pageSize;
//数据库中有多少条数据
private int count;
//总共有多少页
private int totalPage;
 
public int getStartIndex(){
return (this.curPage-1) * this.pageSize;
}
 
public PageBean() {
}
 
public List<T> getData() {
return data;
}
 
public void setData(List<T> data) {
this.data = data;
}
 
public int getCurPage() {
return curPage;
}
 
public void setCurPage(int curPage) {
this.curPage = curPage;
}
 
public int getPageSize() {
return pageSize;
}
 
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
 
public int getCount() {
return count;
}
 
public void setCount(int count) {
this.count = count;
}
 
public int getTotalPage() {
return (int) Math.ceil(this.count * 1.0/ this.pageSize);
}
 
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
}
 
2,创建servlet
 
@WebServlet(urlPatterns = "/pageBean")
public class PageBeanServlet extends HttpServlet {
 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("curPage");
int curPage = 1;
if(page!= null){
curPage = Integer.parseInt(page);
}
int pageSize = 3;
 
UserService service = new UserServiceImpl();
PageBean<User> pageBean = service.queryPageBean(curPage,pageSize);
request.setAttribute("pb",pageBean);
request.getRequestDispatcher("page_list.jsp").forward(request,response);
}
}
 
3,service层代码
public PageBean<User> queryPageBean(int curPage, int pageSize) {
PageBean<User> pageBean = new PageBean<>();
pageBean.setPageSize(pageSize);
pageBean.setCurPage(curPage);
List<User> data = userDao.queryPageBean(pageBean);
pageBean.setData(data);
 
int count = userDao.queryCount();
pageBean.setCount(count);
return pageBean;
}
 
4,dao层代码
 
@Override
public List<User> queryPageBean(PageBean<User> pageBean) {
String sql = "select * from t_user limit ?,?";
return template.query(sql,new BeanPropertyRowMapper<>(User.class),pageBean.getStartIndex(),pageBean.getPageSize());
}
 
@Override
public int queryCount() {
String sql = "select count(*) from t_user";
Integer count = template.queryForObject(sql,int.class);
return count.intValue();
}
 
5,web端代码
 
<c:forEach items="${pb.data}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.sex}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td><a class="btn btn-default btn-sm" href="javascript:void(0);" onclick="queryUserUp(${user.id})">修改</a>&nbsp;
<a class="btn btn-default btn-sm" href="javascript:void(0);" onclick="deleteUser(${user.id})">删除</a></td>
</tr>
</c:forEach>
 
<nav>
<ul class="pagination">
<%--上一页--%>
<c:if test="${pb.curPage==1}">
<li class="disabled">
<a href="jacascript:void(0)">
<span>&laquo;</span>
</a>
</li>
</c:if>
<c:if test="${pb.curPage != 1}">
<li>
<a href="pageBean?curPage=${pb.curPage-1}">
<span>&laquo;</span>
</a>
</li>
</c:if>
<%--页面显示区--%>
<c:forEach begin="1" end="${pb.totalPage}" var="n">
<c:if test="${pb.curPage==n}">
<li class="active"><span style="color: red">${n}</span>
</li>
</c:if>
<c:if test="${pb.curPage != n}">
<li><a href="pageBean?curPage=${n}">${n}</a></li>
</c:if>
</c:forEach>
<%--下一页--%>
<c:if test="${pb.curPage==pb.totalPage}">
<li class="disabled">
<a href="javascript:void(0)"><span>&raquo;</span></a>
</li>
</c:if>
<c:if test="${pb.curPage != pb.totalPage}">
<li>
<a href="pageBean?curPage=${pb.curPage+1}">
<span>&raquo;</span>
</a>
</li>
</c:if>
</ul>
</nav>
 
<tr>
<td colspan="8" align="center"><a class="btn btn-primary" href="add.jsp">添加联系人</a></td>
</tr>
 
 

猜你喜欢

转载自www.cnblogs.com/cyxy31521/p/9420696.html