使用servlet+jsp+mybatis的分页插件写出首页上一页下一页尾页
首先,需要引入mybatis的分页插件,例如使用PageHelper插件。
- 在pom.xml文件中添加PageHelper依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>最新版本号</version>
</dependency>
- 在web.xml中配置DispatcherServlet的映射:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置Spring MVC配置文件的位置 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
- 创建一个Controller类,处理分页请求:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/user/list")
public String userList(Model model, Integer pageNum, Integer pageSize) {
// 设置分页参数
pageNum = pageNum == null ? 1 : pageNum;
pageSize = pageSize == null ? 10 : pageSize;
PageHelper.startPage(pageNum, pageSize);
// 查询用户列表
List<User> userList = userService.getAllUsers();
// 封装查询结果
PageInfo<User> pageInfo = new PageInfo<>(userList);
// 将结果放入Model中
model.addAttribute("userList", userList);
model.addAttribute("pageInfo", pageInfo);
return "userList";
}
}
- 在JSP页面中显示分页信息:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
<c:forEach var="user" items="${userList}">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</table>
<div>
<c:choose>
<c:when test="${pageInfo.hasPreviousPage}">
<a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.prePage}&pageSize=${pageInfo.pageSize}">上一页</a>
</c:when>
<c:otherwise>
上一页
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${pageInfo.hasNextPage}">
<a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.nextPage}&pageSize=${pageInfo.pageSize}">下一页</a>
</c:when>
<c:otherwise>
下一页
</c:otherwise>
</c:choose>
<a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.pages}&pageSize=${pageInfo.pageSize}">尾页</a>
</div>
</body>
</html>
注意:以上代码仅为示例,具体的实现方式可能因项目结构和需求的不同而有所差异
原文地址: https://www.cveoy.top/t/topic/ioNT 著作权归作者所有。请勿转载和采集!