jar包不做阐述。参考spring_mvc_jdbc入门。
一.在util类写分页工具。
package com.offcn.util;
import com.offcn.pojo.User;
import java.util.List;
public class PageUtil {
/*分页的工具类*/
//当前页
private Integer currentPageNo;
//每页显示条数
private Integer pageSize;
//总记录数
private Integer pageCount;
//总页数
private Integer totalPageSize;
//当前页的数据
private List<User> userList;
public Integer getCurrentPageNo() {
return currentPageNo;
}
public void setCurrentPageNo(Integer currentPageNo) {
this.currentPageNo = currentPageNo;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPageCount() {
return pageCount;
}
public void setPageCount(Integer pageCount) {
this.pageCount = pageCount;
}
public Integer getTotalPageSize() {
return totalPageSize;
}
public void setTotalPageSize(Integer totalPageSize) {
this.totalPageSize = totalPageSize;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
二,建立dao与service。
dao:
public interface UserDao{
//分页查询,获取数据,第一个参数代表当前页,第二个参数代表页量
List<User> selectAllUser(Integer currentPageNo,Integer pageSize);
//查询总记录数
Integer selectUserCount();
}
//impl
@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Override
public List<User> selectAllUser(Integer currentPageNo, Integer pageSize) {
List<User> userList= (List<User>) BaseDao.executeQuery ("SELECT * FROM user limit ?,? ",
new Object[]{(currentPageNo-1)*pageSize,pageSize},
new BeanListResultHandler (User.class));
return userList;
}
@Override
public Integer selectUserCount() {
List list= (List) BaseDao.executeQuery ("SELECT COUNT(1) FROM user ",
null,
new ArrayHandler ());
//list转换为string类 然后转int
int i = Integer.parseInt (list.get (0)+"");
return i;
}
}
service层:
public interface UserService {
//分页查询,获取数据,第一个参数代表当前页,第二个参数代表页量
List<User> selectAllUser(Integer currentPageNo, Integer pageSize);
//查询总记录数
Integer selectUserCount();
//impl
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
@Override
public List<User> selectAllUser(Integer currentPageNo, Integer pageSize) {
return userDao.selectAllUser (currentPageNo,pageSize);
}
@Override
public Integer selectUserCount() {
return userDao.selectUserCount ();
}
}
}
三.controller类:
@Controller
@RequestMapping("/userController")
public class UserController {
/* /WEB-INF/jsp/error.jsp*/
@Resource
private UserService userService;
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login111(@RequestParam(value = "uname",required = false)String uname,
@RequestParam(value = "upwd",required = false)String upwd, Model model){
User user = userService.selectByName (uname, upwd);
if(user != null){
model.addAttribute ("user",user);
/*
* redirect代表重定向到,forward转发 默认就是转发*/
return "redirect:toPage";
}
return "123456";
}
@RequestMapping("/toPage")
public String toPage(@RequestParam(value = "currentPageNo",required = false) String currentPageNo,
@RequestParam(value = "pageSize" ,required = false) String pageSize,Model model) {
//就是第一次或者没有的时候,就让其显示首页
if (currentPageNo == "" || currentPageNo == null) {
currentPageNo = "1";
}
if (pageSize == null || pageSize == "") {
pageSize = "5";
}
PageUtil pageUtil = new PageUtil ();
//给pageUtil赋值,获取查询出来的集合
List<User> userList = userService.selectAllUser (Integer.parseInt (currentPageNo), Integer.parseInt (pageSize));
Integer totalCount=userService.selectUserCount ();
//计算总页数
Integer totalPageSize=totalCount % Integer.parseInt (pageSize)==0? totalCount/Integer.parseInt (pageSize):totalCount/Integer.parseInt (pageSize)+1;
//把所有的全部复制到pageutils
pageUtil.setCurrentPageNo (Integer.parseInt (currentPageNo));
pageUtil.setPageSize (Integer.parseInt (pageSize));
pageUtil.setPageCount (totalCount);
pageUtil.setTotalPageSize (totalPageSize);
pageUtil.setUserList (userList);
System.out.println (userList.size ());
model.addAttribute ("pageUtil",pageUtil);
return "showInfo";
}
}
四.showInfo.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table>
<tr>
<th>编号</th> <th>姓名</th> <th>密码</th>
</tr>
<c:forEach items="${pageUtil.userList}" var="sss">
<tr><td>${sss.uid}</td>
<td>${sss.uname}</td>
<td>${sss.upwd}</td></tr>
</c:forEach>
<%-- <a href=""toPage?currentPageNo=1">首页</a>
<a href="toPage?currentPageNo=${pageUtil.currentPageNo-1}">上一页</a>
<a href="toPage?currentPageNo=${pageUtil.currentPageNo+1}">下一页</a>
<a href="toPage?currentPageNo==${pageUtil.totalpage}">末页</a>--%>
</table>
<c:choose>
<c:when test="${ pageUtil.currentPageNo>1}">
<a href="toPage?currentPageNo=1">首页</a>
<a href="toPage?currentPageNo=${pageUtil.currentPageNo-1}">上一页</a>
</c:when>
<c:otherwise>
<span style="color:gray">首页</span>
<span style="color:gray">上一页</span>
</c:otherwise>
</c:choose>
<%-- 当前页数:[${pageUtil.totalPage>0?pageUtil.currentPage:0}/${pageUtil.totalPageSize}] --%>
<c:choose>
<c:when test="${pageUtil.currentPageNo < pageUtil.totalPageSize}">
<a href="toPage?currentPageNo=${pageUtil.currentPageNo+1}">下一页</a>
<a href="toPage?currentPageNo=${pageUtil.totalPageSize}">末页</a>
</c:when>
<c:otherwise>
<span style="color:gray">下一页</span>
<span style="color:gray">末页</span>
</c:otherwise>
</c:choose>
</body>
</html>