ssm到jsp实现分页功能
时间: 2023-05-23 09:04:31 浏览: 80
A:实现分页功能需要考虑以下几个步骤:
1. 在jsp页面中添加分页控件,比如使用bootstrap的分页控件。
2. 在Controller中添加处理分页请求的方法,这个方法需要接收当前页码、每页显示的记录数等参数。可以使用Spring提供的Pageable类来简化代码。
3. 在Service层中查询数据库中符合条件的数据,利用Mybatis提供的分页插件查询指定页码的数据。
4. 将查询结果返回给Controller层,再将结果封装成一个Page对象返回给jsp页面。
5. 在jsp页面中使用JSTL标签迭代Page对象的记录集合,渲染表格或其他控件显示数据。同时,使用bootstrap分页控件提供的方法实现翻页功能。
具体实现方式可以参考以下示例代码:
1. 在jsp页面中添加分页控件:
```html
<div class="pagination">
<ul>
<li><a href="#">Prev</a></li>
<li class="active"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">Next</a></li>
</ul>
</div>
```
2. 在Controller中添加处理请求的方法:
```java
@RequestMapping("/list")
public String list(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
Model model) {
// 查询指定页码的数据
Page<User> page = userService.findPage(pageNum, pageSize);
// 将查询结果添加到model中传递给jsp页面
model.addAttribute("page", page);
return "userList";
}
```
3. 在Service层中查询数据,并使用Mybatis的分页插件实现分页查询:
```java
@Override
public Page<User> findPage(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userDao.findAll();
PageInfo<User> pageInfo = new PageInfo<>(userList);
return new PageImpl<>(userList, PageRequest.of(pageNum - 1, pageSize), pageInfo.getTotal());
}
```
4. 在jsp页面中使用JSTL标签迭代Page对象的记录集合,并渲染表格显示数据:
```html
<table class="table table-bordered">
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.content}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.gender}</td>
</tr>
</c:forEach>
</tbody>
</table>
```
5. 使用bootstrap分页控件提供的方法实现翻页功能:
```javascript
$('.pagination').bootstrapPaginator({
currentPage: ${page.number + 1}, // 当前页码,注意要+1
totalPages: ${page.totalPages}, // 总页数
size: 'small', // 控件大小
onPageClicked: function (event, originalEvent, type, page) {
// 点击页码时跳转到指定页码的地址
window.location.href = '/user/list?pageNum=' + page;
}
});
```