00:00
那接着我们继续写一下这个实线哈,写的这个实线我们先到book色当中去准备一个配置方法,用来处理这个分页。呃,我们找到。不可。呃,我们去复制它的一个方法,改成配置啊,就复制一下。好,这咱就不要了啊。他就是咱们用来做分页好了。处理分页功能是吧,或者说业务好,那么这里面大概要干啥?咱们把刚刚的分析再回顾一下,首先获取请求的参数啊,Page number和page size啊,这第一步,其次第二是什么呢?调用调用不可service点配置方法。
01:08
这里面需要page number。和page size,那么返回的对象呢?就是配置对象。然后第三我们为什么求他,求他是为了一会儿给这个页面去显示啊,所以你得怎么办。保存配置对象到RA,或者一种意思。请求转发到pages下的,Manage下的。Book_menu点接P页面就这。呃,要转发过来,那么这个时候大家注意看着哈,我要调这个方法,怎么调啊,谁调的呀?大家想想哈,从句的页码是吧,但是咱们这下面是不是还没有页码。
02:05
也就是进来的时候大家注意,也就是你进入这个页面之前,点击图书馆里的时候,你就要请求分页的方法了,以往大家看着好把鼠标移上来左下角。什么哎,List是吧,原来是干啥,他是查询全部的图书,而信息呢,他要做分页了,所以这个要改成分页,那我们去改改找到谁啊,找到这个。Come on me menu里面把这个改成配置就好了,是吧,现在呢,要去调用分页,要去调用分页,好,那我们看一下这里面干什么来吧,In page number等于web u点。PA request get meter这什么东西,Page number获取这个参数吧,哎,大家想想哈,如果。
03:02
Page number,人家没有传,你觉得默认是第几页?第一页呀,我知道大家是想明白没有,就比如说这个东西用户没有点击。第几页,然后就进了这个分页了,那你觉得第几页,那肯定是第一页,你想想你在百度搜索它是不是出来第一页,你在淘宝搜索是不是也出来第一页,没有见过一搜索出来第第五页第三页的吧。没有吧,哎,所以就是如果人家没传,我跟你说,那就默认显示第一页是对的啊,那么再来还有page size等于webs.getter。Pay the size,那么如果传咱们用它传的是吧,如果没传呢?哎呀,咱们就使用这个。产量。
04:01
Size就好了嘛,用布局的嘛,对吧,用布局的没传能用不认的局好了,那么还有啊,那么如果说这两个都有了,咱们干嘛先book个service啊来吧。Page。Book page置等于book service.page这个方法,那么它需要接受的参数就是page number page size啊,这个方法没有怎么办呢?去创建一下。去创建一下OK啊,这就有了啊分页好了,那这个方法来,这个方法有了以后,它创建了得到这个分页对象怎么办呢?保存到liquid域中啊Iq.set r表配置就完了。哎,就完了,中间那隔开一下好,最后呢,请用哪发呀,呃,Req.request.get request,我把这个地址直接拿过来啊,我就不一点点写了。
05:11
啊,大家注意啊,这个地址啊,我建议大家啊,跟我们前面说的一样,你怎么办呢?你去复制这些目录啊,别手写,写错一个字母,你可能要调很久。啊,对于初学来说,这个排错大家去学比较困难哈,你建议去复制啊,去复制好forward。Response,好了,这就是请求转发,那这样子呢,Web层咱就写完了啊,这边写完了接着看service层。接着看。呃,你看他直接报错,告诉你在这里是吧,来吧,我把这个方法给人家实现一下。分页里面,那么分页怎么做呀,大家看一下哈,人家不是要一个配置分页对象吗?那我先给你创建一个啊,我先给你创建一个。
06:10
然后呢,我先让你返回是吧,好,那么我们说核心是什么呀,核心是给这五个它里面的五个属性进行赋值啊,那咱们一复呗,首先page置点set,哎呀点set page number page number,这不是符了一个吗?设置当前页码就是第几页。然后再设置每页显示的数量,配置点set page set。然后我们再来看还有什么呢?配置点set,接下来我们看一下总的记录数。哎,总记录数,呃,咱们就说有一个配置total count,这个是表示总的记录数,那我们怎么办呢。
07:11
得啊,得求大家来看一下哈,怎么求还记得吗?咱们说这边是不是通过执行一个C口语句,这个C口语句是不是通过这边的一个方法呀,那就是调用DA里的一个方法,来请看哈,那就是book da.query for。Page total count就好了。通过调用这么一个方法。就可以求了啊,这方法它没有是吧,报错,那咱们给他创建一下不就有了吗?上面有了,那么有了以后。大家继续看啊,往下拉。咱们这里不就有了吗?这是什么?求总记录数。然后这个地方呢,设置总记录数。
08:05
哎,设置个总记录数,那么总记录数有了以后干嘛呀。哎,对,求总页码嘛,是吧,哎,总页码,那么总页码怎么求,咱们说拿总的记录数除以每个显示的数量完事是吧?好,咱们来看一下哈。In呀in都行哈,叫做page total等于page total count除以每页。数量。啊,咱们说是什么呢,九种页码。求总的页码好了,那么求完之后这里需要注意啥?你可以看这个图啊,一点点去看就知道了,需要注意,如果除不尽的情况下,总页码还要再占一加一吗?那么咱们回到咱们这里面来if判断一下。
09:03
说你们俩如果求余。大于零,这意思就是除不尽了,有余数了是吧?那怎么办?H total加加。啊,或者加等于一都行是吧,都可以好,那么求出来之后怎么办呢?page.set page。Total。不就有了吗?设置总页码。设置总的页码好,那么最后还差什么东西,你看不就差一个当前页数据嘛,是吧,我们说它是最复杂的,来看下怎么做啊。来。首先list集合,哎,它当前数据不就多条记录吗,Book。好,然后这是I乘四等于怎么求的呀?看图啊,它是通过一个C口语句,我们说这个三口句,其实是有一个方法去求。
10:09
啊,那我们说明一下,那这边是book可da.que for page it,那么这里呢,需要传递的参数两个。哎,两个,那我先我先这么写吧,Int begin等于零,我先写个临时的,首先begin进来,Page size也得进来。哎,为啥,因为你看看嘛,咱们的C不就需要两个变量嘛,是吧,Begin呢,Set把像就完事了啊好,那么这个方法没有,咱们给他创建一下啊走先创建出来。好,那么这个时候这就有了,这是什么?求当前些数据是吧?求当前些数据,那求出来以后呢,你得保存进去呀。
11:03
Set it。求当前页啊,不是只是设置当前页数据好了,那么这里面再想想啊,咱们这个begin是不是临时写的死的是吧,写个假的数据是吧,先用的是吧?那这东西是怎么求出来的,咱们也说了一点点的都分析过,它是由公式求出来的。这个时候你得套用公式,而且这个公式咱们也求证过是没有问题的。当前页码减一乘以每一数量来。配置点get page number减去一,然后乘以每页数量。完事了,哎,完事了,这是什么?是求当前页数据的开始索引,就查的时候它是通过这个索引来查的,好了,这样子呢,大家注意看,Service里面不也都写好了吗?完全就是按照我们刚刚分析的步骤,对吧?好,那接下我们看do吧,Do就两行卡嘛,来在报,Do已经报错了,你看见了吗?咱们刚刚生成的时候是在这个接口里面生成的啊,这两个实线其他边可还没写。
12:17
那咱们写一下啊。在这底下给他生成一下。好。俩方法,咱们先来看看求总的记录数,其实总的输录数也不是特别难啊,为啥呀?因为这个S5句咱们不是也分析过了吗?你把这个赛舞句写到这里之形象就完了呗,是吧?好,请看Li看新弗罗t book完事了,哎,执行一下就好了,来吧。Query。For single value,咱把SQL语序进来完事了。就完事了啊,就完事了,好了,那么这个时候它返回的是什么?是number类型。
13:08
啊,接收一下就行了,好。然后呢,给他转一下,那叫intake是吧,来count.in value完事了。这就给他转回去了。啊,转过去了,然后这个是求这个,呃,当前一些数据,那其实也差不多呀,你只要看到这个图你知道吗,这不是写了吗?有什么方法,有什么语句一清二楚,你就拿来写就行了,来。C等于select,呃,这里呢,要写上列名啊,咱们列名的话,咱们把这个就拿过来。好,我复制。走谁来的列?呃,所有的列啊,然后book,然后还有呢,Limit问号,逗号问号。
14:04
是吧,就俩参数嘛,然后咱们给人家调用的时候传一下。大家注意看query for list,因为会返回多条记录嘛,每条记录呢,都是book这个类型,哎,然后cle语句,哎,然后参数分别是begin和。搞定了,搞定了,好,那么写好之后。大家注意咱们要测一下啊,测的时候呢,永远都是呃,最小单元优先测试,咱们从这个do这个最小级最小范围测一下。啊,咱们先测试这俩方法行不行是吧,来吧,呃,咱们找到前面的测试book DA里面写上这俩方法。嗯。有吗?咱们还得写public啊,其实其实简单一点啊,咱们可以把这个方法复制过来就就行了。
15:11
啊,偷个小懒是吧,然后这俩注解是什么?是哈。而且大家注意测试的方法,反过去都是won,你别别有都改改。还有就是测试方法呢,没有参数啊,你别写参数,把这俩参数去掉。行了,哎,好,咱们把它来测试一下。OK,那么我们先打印总的记录数,Book do d,哎,Query for page total count,咱们执行一下,他看看一共有这个几条记录啊?几条22条啊,那么我们在这边呢,也做一下相同的一个执行。
16:01
看看那个是不是一样啊,如果一样那就说明没有问题了。来选中它执行22码,说明这个求总记录数啊,是完全没毛病的啊,那接着呢,我们再来看啊,求这个当前页数据,那么不可da.query哎,For page it,那咱们就说咱们就求第几个呀,就求上面这个吧,嗯,来执行一下,一会看跟他一样不一样啊,就是第三页的数据就八和四是吧,八和四,那咱们就说这是八。四。啊,或者说咱们写个常量点get size也行啊好,那么查完出来之后啊,你得循环一下啊。循环一下好。咱们打一。不,咱们看到一个效果。
17:02
稍等啊,来等它编译一下,大家请看九十十一十二是不是跟我们这边一样,那说明这个没啥问题啊,那么DAO测试好了以后啊,咱们来测试一下哎,Service。是吧,好,那我们呢,还是找这个book service看下吧,在它里面再写一个测试的方法。Public VO page来吧,我们就打印一下book service点配置,我跟他说我要查第一页,呃,我每页显示四条,你给我查查是吧?哎,你给我查查好了,我们打印一下啊。走。看那数据对不对啊。看你打勾还是打红啊,勾了说明对的是吧,说明直径没有错误,咱们看这结果对不对。
18:03
这第一页啊,我们刚刚不是说要第一页吗?没显示四条啊,没显示四条,一共是22条,记录22除以四。得到五与两条加一,没错,六条哈,那么这个数据呢,呃,就是一。啊。看见了吗?三。是没啥问题啊,没啥问题,好了,那这个service也没问题,那接着注意了,咱们该测谁了,该测web层了,那web层的测试呢,是跟页面一起联调的。跟页面一起联调的啊,跟页面一起联调,咱们看看。怎么做呀,我们到了布克时代里面啊。不可serve就它,呃,我们到这个配置里面打上这个断点。啊,大家请看一下哈,那么在哪请求进来的呀,怎么请求进来的,它是从点击图书管理,然后调用这个方法,然后请求进来,那么最终便利的时候,大家想想啊,不可manage这个地方。
19:15
哎,不可命这个地方,那么你想想咱们是不是也得改一下它便利的这个数据啊,以前是干嘛是便利book是,而现在呢,是便利配置里面的item这个数据,所以这一定要改动一下,好改动好之后咱们来看看行还是不行了。啊,最后咱们让这些数据都生效的话,咱们重重启一下哈。找到这个book。先停了,咱们debug启动一下。啊,因为咱们现在要调试了。稍等啊。它的变异。
20:00
好,正在启动。好了。咱们看看咱们写好这个扉页啊,行不行,大家注意看后台管理,图书管理,大家看左下角,左下角的这个地址啊,现在已经是配置,那么我们点击一下,好,你看就跟我们所设定的一样,进入到配置这个分页的方法,那咱们一点点来看一下呗,啊获取这个请求参数,大家请看走你这什么看下面也行,得到第一页是吧?咱们说过了吗?搜索的时候或者点击的话时,首先肯定输出第一页的。啊,然后得到每页的数量,走,你得到四条是吧,然后紧跟着第一页求四条记录,咱们刚刚这个方法是不是也测过,得到结果也没啥问题。啊,就稍微等一会儿啊,要慢一点诶,你可以看到这里就出来了嘛,啊最后呢,保存到录库域当中走,你最后转发过去,然后看看效果走是不是第一页的数据啊,你看这不就出来了吗?那咱们说这个效果,这个界面效果还差什么,是还差这个分页条,这分页条咱们从哪来的呀?从注意。
21:12
从首页这里拿过来的,那我们到首页去找一下呗。啊,嗯,我们到首页。首页啊,最大化分页的哪去,就这个看见了吗?哎哟。来,我缩进一下啊,就这一段,那你把这个分页条这段内容复制一下,咱们去复制,你看到了吗?首页上页,呃,下页末页,就这个东西咱们放到哪呀,放到咱们book manager里面。啊放到再看,放到table的下面好粘贴,呃,咱们就在这边回来后台读书再来看一下啊断点了是吧,咱们不看了哈,这断点咱们看过了,走放过去诶是不是有那么一个效果呀,对吧?这分页条不就出来了吗?最后啊,咱们再把这个分页条的当前页码总页码当前总结记录数给它输出一下啊就差不多了啊就差多了,初步的就实现就有了。
22:14
那么我们看一下哈。当前页码录音点配置,点配置number,呃,然后。总页码、总记录数。好了,哎,那这个呢,其实你可以换下行,太长了是吧,来咱们刷新试试看啊,看效果是不是跟我们预期的一样,当前是第一页,一共呢六页22条记录,没毛病是吧?哎,咱们就分页初步的事情就有了。
我来说两句