以实现用户管理模块的分页查询功能为例,在使用ssm框架搭建基础框架后,我们可以按照以下步骤实现分页查询功能。
步骤一:添加PageHelper依赖
在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
步骤二:配置PageHelper插件
在项目的Spring配置文件中,添加以下配置:
<!--配置PageHelper插件-->
<bean id="pageHelper" class="com.github.pagehelper.PageHelper" init-method="afterPropertiesSet">
<property name="properties">
<value>
reasonable=true
supportMethodsArguments=true
returnPageInfo=true
params=count=countSql
</value>
</property>
</bean>
步骤三:在Controller中接收分页参数,并使用PageHelper.startPage()方法实现分页查询功能
@RequestMapping(value = "userList", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getUserList(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userService.getUserList();
PageInfo<User> pageInfo = new PageInfo<>(userList);
Map<String, Object> result = new HashMap<>();
result.put("pageInfo", pageInfo);
return result;
}
以上代码实现了根据传递的pageNum和pageSize参数进行分页查询,并将查询结果封装到PageInfo中返回给前端。
示例1:使用ajax分页展示用户列表
前端代码:
var pageSize = 10;//每页显示10条记录
var pageNum = 1;//默认查询第一页
function getUserList() {
$.ajax({
url: "/userList",
type: "GET",
data: {pageNum: pageNum, pageSize: pageSize},
dataType: "json",
success: function (data) {
var userList = data.pageInfo.list;
var totalPage = data.pageInfo.pages;
//渲染用户列表
}
});
}
以上代码通过ajax异步获取后台返回的分页结果,并根据分页信息渲染用户列表。
示例2:使用Thymeleaf模板引擎展示分页查询结果
前端代码:
<table>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>性别</th>
<th>年龄</th>
<th>操作</th>
</tr>
<tr th:each="user : ${pageInfo.list}">
<td th:text="${user.id}"></td>
<td th:text="${user.username}"></td>
<td th:text="${user.sex}"></td>
<td th:text="${user.age}"></td>
<td><a href="#">编辑</a><a href="#">删除</a></td>
</tr>
</table>
<div th:fragment="pagination">
<ul>
<li th:class="${pageInfo.isFirstPage() ? 'disabled' : ''}">
<a th:if="${!pageInfo.isFirstPage()}"
th:href="@{/userList(pageNum=1,pageSize=${pageInfo.pageSize})}"
th:text="'<<'"><<</a>
</li>
<li th:class="${pageInfo.isFirstPage() ? 'disabled' : ''}">
<a th:if="${!pageInfo.isFirstPage()}"
th:href="@{/userList(pageNum=${pageInfo.pageNum}-1,pageSize=${pageInfo.pageSize})}"
th:text="'< '"><</a>
</li>
<li th:class="${pageInfo.isLastPage() ? 'disabled' : ''}">
<a th:if="${!pageInfo.isLastPage()}"
th:href="@{/userList(pageNum=${pageInfo.pageNum}+1,pageSize=${pageInfo.pageSize})}"
th:text="' >'">></a>
</li>
<li th:class="${pageInfo.isLastPage() ? 'disabled' : ''}">
<a th:if="${!pageInfo.isLastPage()}"
th:href="@{/userList(pageNum=${pageInfo.pages},pageSize=${pageInfo.pageSize})}"
th:text="'>>'">>></a>
</li>
</ul>
<span th:text="'共 '+${pageInfo.pages}+' 页,当前第 '+${pageInfo.pageNum}+' 页,共计 '+${pageInfo.total}+' 条记录'"></span>
</div>
以上代码通过Thymeleaf模板引擎遍历展示分页结果,并在底部生成分页导航条。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ssm框架+PageHelper插件实现分页查询功能 - Python技术站