springmvc分页功能实现
时间: 2023-07-12 18:36:36 浏览: 43
实现 Spring MVC 分页功能可以通过以下步骤:
1. 在控制器中获取分页参数,包括当前页码、每页显示数量等。
2. 在 Service 层中查询总记录数,并计算总页数。
3. 根据当前页码和每页显示数量查询本页数据。
4. 在视图中显示分页链接和数据。
下面是一个简单的示例:
1. 在控制器中获取分页参数
```java
@RequestMapping("/list")
public ModelAndView list(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
ModelAndView mav = new ModelAndView("list");
mav.addObject("pageNum", pageNum);
mav.addObject("pageSize", pageSize);
return mav;
}
```
2. 在 Service 层中查询总记录数,并计算总页数
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public int count() {
return userDao.count();
}
@Override
public int pageCount(int pageSize) {
int count = count();
return (count + pageSize - 1) / pageSize;
}
@Override
public List<User> list(int pageNum, int pageSize) {
int offset = (pageNum - 1) * pageSize;
return userDao.list(offset, pageSize);
}
}
```
3. 根据当前页码和每页显示数量查询本页数据
```java
@RequestMapping("/list")
public ModelAndView list(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
ModelAndView mav = new ModelAndView("list");
List<User> userList = userService.list(pageNum, pageSize);
mav.addObject("userList", userList);
return mav;
}
```
4. 在视图中显示分页链接和数据
```html
<ul>
<c:forEach begin="1" end="${pageCount}" var="i">
<li><a href="?pageNum=${i}&pageSize=${pageSize}">${i}</a></li>
</c:forEach>
</ul>
<table>
<thead>
<tr>
<th>Username</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.username}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</tbody>
</table>
```
这样就完成了 Spring MVC 分页功能的实现。需要注意的是,在实际开发中,还需要处理一些异常情况,比如参数非法、页码超出范围等。