使用MyBatis分页插件PageHelper
1、在pom.xml中添加依赖,把PageHelp的jar包导到项目中
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2、在Mybatis的配置文件中配置拦截器插件,注意要配置在sqlSessionFactory对象中
<property name="plugins">
<array>
<!-- 传入插件的对象 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
3、在Controller中实现
@RequestMapping(path = "/Example")
public String Example(Model model,@RequestParam(required = true, defaultValue = "1") int page, @RequestParam(defaultValue = "5") int size) {
PageHelper.startPage(page, size);
List<User> users = userService.findAllUser();
PageInfo<User> pageInfo = new PageInfo<>(users);
model.addAttribute("users", pageInfo);
return "example";
}
4、前端页面
注意:forEach取Model里的值时,要在变量名的后面加上.list,例如我在Model里存的名字是users,在前端取值的时候,写成${users.list}
<c:forEach items="${users.list}" var="users">
<div>
${users.user_name}
</div>
</c:forEach>
<div>
<a href="${pageContext.request.contextPath}/Example?page=${users.pageNum-1}">
上一页
</a>
<a href="${pageContext.request.contextPath}/Example?page=${users.pageNum+1}">
下一页
</a>
</div>