SSM中使用PageHelper分页插件,简单到位

注意:

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>

效果展示

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值