PageHelper分页操作异常

本文记录了一位开发者在使用activity+shiro+pagehelper+easyui框架时遇到的问题。由于easyui菜单点击每次都查询用户权限,且PageHelper.startPage()后的分页参数未被正确消费,导致权限查询出现错误。解决方案是遵循PageHelper官方文档,确保分页参数在MyBatis查询后被清除,避免影响其他操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为一个工作一年的菜鸡,终于写下了人生中第一篇博客,想想就激动。这个问题也是好久之前的问题了,是在上家公司遇到问题,使用的技术也是很老的,现在记录一下。


使用的框架
activity+shiro+pagehelper+easyui

背景
需要查询activity的中的人员待办任务,当用户去操作时,需要验证是否有这个权限。
在确保用户有操作权限后,有时候也会提示用户无权限进行操作。

问题产生的原因
easyui左侧菜单树每一个菜单都被标签包裹住了,导致每次点击菜单都会查询一次用户的所有权限(这个也不是啥好操作,点一次就查一次),在点击后,会默认调用查询的工作流待办任务的方法,这方法是我直接copy过来的,而上一位写代码的大哥,使用了PageHelper.startPage()。。。后面也没有进行MyBatis查询,后面跟着的是activity查询带办任务的方法,这是activity自带的方法,而且也可以分页处理,不知道他为啥这么写。这样就导致了新产生了分页参数未被消费,会给权限查询语句加上分页操作,从而导致有时候会提示用户无权限操作。

根据使用手册,使用PageHelper.startPage(),需要在后面紧跟MyBatis查询方法,才能保证使用安全。否则PageHelper产生的参数就不会被消费,导致在后面的某个查询操作上添加分页参数,造成错误。正常情况下,后面紧跟Mybatis查询,查询成功后,它就会调用PageHelper中的clearPage()清除参数,而clearPage这个方法实际执行了ThreadLocal中的remove()方法。
https://pagehelper.github.io/docs/howtouse/

总之,使用框架的时候一定要看官方文档,要不找个问题费死劲,浪费时间,得不偿失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值