请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师咱们分页这块的方案总感觉很别扭

建议老师参考下目前主流分页及统一返回数据的方案!

正在回答 回答被采纳积分+3

2回答

甲蛙 2020-05-04 09:18:36

可能每个团队、每个项目对分页参数的输入输出设计不一样,但是总体都逃不过四个元素:页码、每页条数、总条数、当前页数据,另外还会加上一些查询条件,比如按名称查等,后面会介绍。

有些项目可能是两入两出,入参是页码+每页条数,出参是总条数+当前页数据。有些项目是一入三出,入参是页码,出参是每页条数+总条数+当前页数据。

后续的章节中,我还会有针对分页的查询条件做进一步的功能扩展,可以往后看看。

你可以分享下你的分页是怎么设计的,或者有没有一些主流分页的文章,我可以学习学习。也可以加入QQ群,进行详细沟通。

0 回复 有任何疑惑可以回复我~
提问者 中南小蜜罐 2020-05-03 23:45:26

1. bug相关的问题

https://img1.sycdn.imooc.com//szimg/5eaee50e0995af1620240198.jpg

https://img1.sycdn.imooc.com//szimg/5eaee52b0934284115780220.jpg

另外当page=2 size=2的时候为啥结果中 total 还有两条数据而list是空的,一个十二年的老司机这个bug都看不出来

2. 关于分页中方法的设计

https://img1.sycdn.imooc.com//szimg/5eaee6a209fddd2e14220984.jpg

service 层直接这种设置的方式没有显示返回什么类型的数据,这样写很不优雅,说白了很难维护

0 回复 有任何疑惑可以回复我~
  • 甲蛙 #1
    抱歉,一个系统一个人写下来,主要的方向还是为大家介绍各种技术点,容易忽略细节,难免出现BUG。
    
    1. 其实不能算BUG,total是数据库的总数,这个是前端分页组件显示所有页码必须的,返回2没问题,而你要查的是第2页,每页2条,第2页当然没数据了,所以当前页数据list是空。不过也确实应该对page和size做校验,比如不能输入负值,还有最大值最小值校验等。
    
    2. 分页功能一般包含四个基本元素:输入参数:页码、每页条数;输出参数:总条数、当前列表。我这里是把这四个放在同一个PageDto里。当然你也可以把它拆成两个Dto来维护。如果觉得Service没有返回值难维护,可以把void改成PageDto。
    
    后续的章节中,我还会有针对分页的查询条件做进一步的功能扩展,可以往后看看。
    回复 有任何疑惑可以回复我~ 2020-05-04 09:08:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信