注意:
pageHelper分页插件在4.x和5.x的版本中mybatis-config.xml的配置是不一样的(包括property的属性也有个别出入,有需要了解的可以百度一下)
4.x:
<plugin interceptor="com.github.pagehelper.PageHelper">
5.x:
<plugin interceptor="com.github.pagehelper.PageInterceptor">
出现java.lang.ClassNotFoundException异常问题的小伙伴可以检查一下这里是否出错
导入依赖(pom.xml)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
mybatis映射文件配置(applicationContext-mapper.xml)
<!--sqlSessionFactory-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.liujie.ssm.pojo"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
<!--数据库方言-->
helperDialect=mysql
<!--合理化分页-->
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
controller层
@RequestMapping("findAll")
public String findAll(Model model,@RequestParam(required = true,defaultValue = "1")Integer page,@RequestParam(required = false,defaultValue = "4")Integer pageSize){
//PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,
//page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录,我这里设置每页只显示4条。
PageHelper.startPage(page,pageSize);
// 获取数据
List<Student> list =studentService.findAll();
//创建PageInfo对象,保存查询出的结果,PageInfo是pageHelper中的对象
PageInfo<Student> pageInfo=new PageInfo<Student>(list);
model.addAttribute("studentList",list);
model.addAttribute("page",pageInfo);
return "student" ;
}
service层与Dao层没有添加PageHelper的地方
前台页面student.jsp
<body>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
<th>专业</th>
<th>家庭地址</th>
<th>操作</th>
</tr>
<c:forEach items="${studentList}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.department}</td>
<td>${student.address}</td>
<td><a href="deleteStudentById?id=${student.id}">删除</a>
<a href="findById?id=${student.id}">修改</a> </td>
</tr>
</c:forEach>
</table>
<button onclick="window.open('..\\addStudent.jsp')">添加</button>
<p>共${page.pages}页</p>
<a href="findAll?page=${page.pages-(page.pages-1)}">首页</a>
<c:if test="${page.hasPreviousPage }"><%--判断是否有前一页--%>
<a href="findAll?page=${page.pageNum-1}">上一页</a>
</c:if>
<c:if test="${page.hasNextPage }"><%--判断是否有下一页--%>
<a href="findAll?page=${page.pageNum+1}">下一页</a>
</c:if>
<a href="findAll?page=${page.pages}">尾页</a>
</body>