00:00
来,接着看我屏幕啊。我们现在已经把这个常规的啊,常规的增删改查功能啊,我们已经把它做完了。呃,下面呢,我需要做一个小的修改,这个1.5啊,我想在上面追加一点点小的功能。嗯,但是呢,我就不在这个代码的基础之上,这个接着改了,我重新复制个项目出来行不行。重新复制一个啊。Can you see。根据V。幺幺。Fruit1.6行就行了。好了,我把这个复制一下CTRLC。到这边来,CTRLV。然后呢,把它加进来。好找到model,找到加号import,然后呢,找到1.6这个。
01:04
点击OK,行,这边都没问题。然后呢,我们artifact把这玩意删掉,重新新增一个。服装报道把1.6这个加进来。好,那么回到这边来,这里面的deploy把这个删掉。我们重新要新增一个1.6。没错,叫PROJECT11。那这个改成PRO11,那我回到这边来,我这个就是PRO11,同学们如果如果我这边把它删掉啊,我们有同学把这边删掉,那你一运行,那发现这个没有数据,为什么没有数据啊。为什么没有数学的同学吗?你是不是没有去访问index这个呀。你没访问,没去查询,怎么可能会有数据呢,是吧?那行吧,下面我要做的功能是什么呢?同学们,首先。首先第一个。我们的页面上index页面上显示的所有的数据太多了,我的想法是每页给我,每次给我显示五条数据,不要显示那么多,每次显示五条,那你既然每次显示五条的话,你这个select里面去查询就不再是查询所有的了。
02:15
回到这边来。这个单码我就把它删掉了行吗?同学们,这是咱们讲中玉的那个基础知识啊,删掉了。然后我们回到DA层,回到float DA,注意看啊,这个方法稍等一下啊,这是所有的数据。现在这个方法我不要了。我重新换成另外一个方法。Inter page number。就说获取指定。页页面啊,指定页码。上的所有的库存列表信息。配吉拉玛等于一,获取第一页,配吉拉等于二,获取第二页。每页显示五条。
03:05
每页显示五条行吗,同学们?这个方法。所以呢,我回到float do里面去。这个方法你得把它改一改了。啊,你这边也得写个参数in page number。那我这个select的心,我不能这么写了。好,我们回到数据库里面去。Select。新t float。Limit,如果这边写个零,写个五,这啥意思?显示前五条数据吧,索引从零开始显示前五条,如果这个写五。是不是第二条第二页的数据啊,我这边如果我这边如果说我写上十。哎,从第11个开始显示五个,是不是第第三页啊。
04:01
那行,所以。所以假设page number,我们有pageg number啊,还有个五,我要写是d page number页,我应该怎么写?怎么写?应该是。应该是怎么写呢?五乘以配number减一。是这么写吗?怎么感觉有点别扭?我,我感觉有点别扭。应该是配吉娜巴简易。乘以五。我感觉这个应该就对了。你如果是第一页一减100乘五还是零,如果是第二页二减111乘以五还是还是五是吧,如果是第三页三减122乘50,对的吧,行,我感觉应该是这么句写。啊,这么应该就对了,行吧,那回到这边来。好,回到我们这边来,那这个搜狗语句,咱们得需要把它换一下。好,Limit。
05:01
问号问号,那这个我就把它写成五行吗?同学们,我就直接写死了。所以呢,这个问号我们要填充的参数是什么呢?K number减一乘以五是不是就把它放进来了啊,就是这样的。当然了,同学们。你这个。你这个地方我们写的是培金number啊,所以我就直接把它传进来是没有问题的。啊,是没问题的,那行吧。那这边搞定了。这边搞定之后。那这边调的时候为什么就报错了。我们需要参数的嘛,现在你没有参数嘛,没有参数肯定就不对啊,没有参数肯定就不对了。行吧,默认显示第一页,我就写个一。啊,我就写个一就可以了。那行,我们现在再重新来。Rederey或者restart。重启一下。我们来看一下啊。
06:05
好,我们把这个都关掉,把这个也关掉。好把这页面打开啊,其他的暂时先把它先关掉,这个不要。好,这个也不要。这个也不要呀,关多了真是。机器卡住了啊,哎。行,他出来了是吧。就这样子。啊,他显示显示五条记录。那每页显示五个,这样会会比较舒服一些。你不做分析,万一你数据库里面有10万条,难不成你还差10万条?是吧,这明显不现实的啊,所以说这个分页是很有必要的。那你想写第二页怎么办呢?啊,所以我们在这个在这个table的下面,咱们得写个D。
07:00
我们得写个D。那行在这个div里面,我们再写一个小的div。或者写个段落都可以啊,这个小的div里面呢,呃,这个table啊,我看一下啊,这个table上面我们之前写过一个div的,这个div这边还有样式的啊,宽度是60%。啊,是20%。行吧,我把这段重新复制一份CTRLC。然后把它放到这里面来可以吧,同学们,哎,不是这个,是上面这个。啊,把它放到这儿行不行。然后在这个里面有个div,这个div里面我再来写个button,或者我不用div就直接写button也行啊,没问题的。Input。Value首页。咱们简单一点啊,就写四个按钮就可以了。首页。上页。下一页。
08:00
唯一。好,就这样吧。好了,我们来试试看。嗯,差不多吧。回到页面上去刷一下。哎,出来了吧,然后咱们把里面的内容,我们可以让他居中。我们写个class。我记得一个class叫。居中了。在那刷一下。没反应啊。是不是我这个div只有这么多,不可能吧,应该不可能啊。不可能,我记得不可能啊。刷一下。但应该是缓存没反应过来是吧,不管他啊,不用不用紧的啊,不用不用紧,这个页面上无所谓的啊。我们这边写个内样式class,一个叫B天是吧。行,把这玩意CTRLC拷过来,把这个样式就全部加进去。我们重点是要实现它的功能啊,这边代码没有问题啊,只是它有些时候热部署它没有那么快,好吧,同学们稍微等一会儿就可以了啊,再来。
09:04
那么首页是没有问题的啊,首页默认就显示第一页,那我们现在默认显示的是第一页,我要点击下一页,点击下一页给我显示第二页,我应该怎么做呢,同学们。我应该怎么做呢?你看首页上页下页尾页没问题吧,我们可以把它再往下拽一点。那么我们就让这个div,我们可以给他写一个判定。Paint top是不是它的内部填充啊,有四像素,这是可以的,然后把红框框把它去掉。改成零行吗?那现在我们重点想说的不是这个显示的样式啊,我们重点想说的是,当我点下一页,我点击下一页,我是不是要给我们的发请求,请求第二页啊。请求第二页数据,那我下一页怎么知道是谁的,第二页呢,下一页呢,是不是要有个当前啊。我应该要有个当前页。在当前页的基础之上再加一嘛。是吧,同学们。因此注意看啊。
10:01
我回到index来看,我来看我的写法,注意看啊,逻辑会稍微有点,慢慢的越来越复杂了啊,回到这边来。第一步,在index。第一步我怎么做呢?Request,对的,我先获取页码getter。我就写个叫page number行不行?获取page number。Page number s掉。好。If page number STL不等于now。哎,不能这么写,我们应该要写的是叫怎么写,叫string u.is not empty是吧,同学们。赔钱,那么哦,如果你不等于空,我才执行一个事情的默认情况下。默认情况下,In page number等于一,默认等于第一,如果你不等于空,表示你确实给我传数据过来了吗?Page number等于点passit。ST。
11:00
就这样子。然后这个page number,我就把这个一改掉了,改成page number。啊,我就把它改成配number了。就这样的。那这是一个啊,我们试试看改动它能不能也给我更新过来啊,点下一页。这个现在还等不了啊,在这边写吧。问号page number等于二。哎,可以的吧。配,那么等于三可以的pageg,那么等于四也可以的啊,说明咱们最多只有四页。那下面我应该怎么做呢?我经过上面的这个过程。我经过上面的这个过程。我会把page吉拉保存到赛线作用域。好,所以我这边写一下HTTP3线。They request get session。然后先点set attribute page number。
12:02
然后我们把配金单板把它扔进去。把page number是不是保存了三线作用域了?请问我保存了三线作用域,我在页面上能不能获取到?可不可以?肯定是可以的,所以我再回到页面上哦,这边跟筛选重复了,那我就把这行删掉行不行。删掉啊。删掉了三线在这边创建了是吧,同学们。回到页面上去,那么我这个下一页。我写一下on click。当他被点击的时候,我要做一件事情。用一个方法,Page。编辑里面可以传一,可以传二,可以传三,那么传的到底是几,是不是动态的呀?所以我这边是不是要写T冒号呀。然后这边是不是要写加个竖线啊。然后竖线里面我们可以写个叫Dollar大括号section.page number加一。是不是啊,同学们,哎,三线的配number当前页再加一嘛,不就下一页吗?同样的道理,上一页怎么写啊?
13:04
嗯,那就简易嘛。写个建议。如果是首页呢?直接传个一就完了嘛。是吧,同学们,我就直接传个一,那其实这个竖线也可以省略,因为这里面没有什么表达式是吧,行就这样。至少还报个错呢。Ctrl a ctrl X ctrl X ctrl v。还不错。还不错。杀。在肯定。他还报错,算了吧,他报就报吧啊。不管他了啊,他报就让他报吧,行吧,那同学们下面我是不是缺一个配置方法呀。啊,我缺个配置方法。哎,咱们同学打断我了,说了老师这边还有个尾页,你没写呢,我没忘啊,这个尾页的方式稍微一一丢丢不一样,咱们先把这两个先解决掉行不行,同学们。
14:01
来,我们把PG方法把它补全了,那我们也写到JS方法里面去啊,回到这。Function。配置,那它里面需要的是个配件LA。好,我们要这边写一下window.location.hf等于我要给谁发请求,给index发请求。给index发请求,然后把page number带过去。加上一个page number是不是?你看我写的这个网址是不是就和我刚刚在这边写的是一样的,Index问号,Page number等于多少多少。是不是啊,不就这个方式吗。这个配置页面我也把它搞定了。呃,我们得试试看它行不行啊。先回到index页面上去。敲回车。点下一页。啊,点了不行,诶点了不行,哦不行,可能他还没反应过来呢,点他看一下是不是undey。看一下啊。是不是?配置是R发,为什么是R方,我的JS是不是刚刚加进去的,所以呢,他这个里,他这个玩意里面呢,他可能估计这方法还没还没更新进去呢。
15:04
打开看一下。找到杰斯,找到他。这个现场打脸啊。啊,加进去了是吧,加进去它都没识别啊。那我就刷新。回到这来啊,点它。点击设置,诶同学们,我刚刚是运气比较好,加进去了,但有些时候就是没加进去,能听懂吗?所以大家要灵活应变啊,一定要灵活应变。好点浏览点清除行吗?再来刷一次。然然后咱们再点下一页,下一页可以了吧,不报错了吧。到第二页了,再点下一页,再点一下一页没问题,上一页上一页上一页可以了吧,到第一页了。下一页下一页到最后一页了,再点下一页。KA。其实这个现象是正常的。同学们。其实这个现象是正常的。
16:00
是不是是没问题的啊。我点首页回到第一页,再点上一页,等于零等于负一,等于负二,这个其实也是正常的,人家就是每次减一,每次减一计算的嘛,我们需要做的是什么,我们下一步需要做的事情是。当前如果是第一页,首页和上页要不能点。要禁用。要按钮不可用是不是。当我到最后一页的时候,下一页和尾页也不可用。没错吧?那行吧,咱们刚刚同学打断我说,这个老师你五页还没实现,那咱们要不先把这个五页先来实现了。伟业其实差不多。同学们。我们把这句话复制过来。从这到这CTRLC到这CTRLC。那请问一下这个尾业里面传的是什么呢?假设我当前总共。我当前假设,我总共有四页。大家想一想。我当前如果总共有四页,我这个配置这里面应该写的是什么,是不是写的是四。
17:03
假设我总页数是十页,我写的是不是应该配几小括号十?那也就是说,我这里面写的应该是配给十,或者配给谁谁谁,总之应该是配给总业主。哎,没错吧,应该是这样的。那我是不是现在还没有求总页数的那个方法哟。行吧,那我们就把这个总页数把它来写一写。OK。现在呢?我得回到do。DAO在这。我们需要在这里面来补一个方法。好,同学们,我在这边补的不是总页数,我补的是查询总记录条数的方法。查询。库存总记录条数,因为总记录条数知道了,我就能知道总页数吗?行,Int get flu count,我就写这么一个方法。行吧,同学们叫获取我的库存的一个总总数量。
18:02
那这个方法我们怎么去实现呢?我们怎么实现啊,其实也好实现。我们是不是有一个叫superian XQ的complex。是不是啊,好,Select看的心。From t杠是吧?那请问一下这个方法实行执行完之后,它是不是返回的是个object的数组啊,那其实我们得到的是不是一行一列啊,所以我就写个中号。零。然后呢,他得到这个object,我们是不是可以再强转为intake呀?就这样子。那我就写完了。咱们先写完,保证它编译不报错啊,一会儿这边出问题再说啊,行这个方法我已经把它补上去了。那么我要回到里面去。同学们,我刚刚在这个地方是获取的库存的记录嘛,获取指定页面上的记录,我除了获取它,我们最好再调用do里面的获取总记录的这个方法。
19:03
把总记录条数查出来,从而能够计算出总页数嘛。行,写一下。Fruit do。点get fruit come吧,就是它。我们写一个叫total,或者叫flu count。等于它。然后同学们大家帮我算一下。总记录条数。条数和总页数的关系,假设总记录条数是一条,页数应该是一页。如果是有五条总记录,页数应该还是一页,如果是六条记录应该是两页,如果是十。两页11。三页是不是这样的?那请问如果总记录条数是flu count。那么我们的总页数应该是多少?好,我直接写flu count。减五。
20:02
加一。也就是减四。啊不不叫减四叫加五减一。除以五。就这样了。我加上一个不足一页的记录。所以一旦零。一页超过一丁点,那加上这个数,它就会就会有效。如果你正好是五,你加了这么一点点,不足一页,它还是一页。就是这么个公式,课下再慢慢算好不好,好不好,小学数学是吧,课下慢慢算啊,好,所以我们的总页数int,比如说我写个叫PEG count的行吗?同学们。啊,等于。Fruit加五减一,这个五就是page size嘛。对吧,每页的数量嘛,再除一个五就这样的。好,我这边写一下啊,这个是总记录条数。下面这个是总页数。所以我就得到page count了,那我是不是应该把page count保存到session里面去啊?
21:01
所以从这到这,CTRLC放到这边来。好,Page count c,据LVCLV,行吧,同学们,我就写进去了,然后我们再回到页面上去,我们跑到这边来。三鲜点。你。Pageg count是吧?同学们,我写个page count就可以了。那行吧,咱们这个午夜加个一看他能不能更新过来行吗。回到页面上去。刷一下。有了吧,点一下。也不错了。报错了。啊,怎么报错了呢?我们看一下啊。说明你这个三星点配g com他没反应过来。啊,说明这里面数据有问题,我们后退看一下啊。右键。检查。点一下它。会到这个上面的。
22:01
你看。看到了吗?它显示的是闹,说明他那个没刷新过来,好吧,同学们。啊,说明了塑料没刷新过来,我们这个单词应该没有写错啊,叫pageg com。我们看一下这。叫pag抗对的吧,说明说明我们刚刚这个solid里面加了代码,它没更新过来行吗?同学们。啊,你实在不放心,你就重启一下。我这边是比较偷懒,不想重启,所以呢,我就把它一直到他刷对刷对为止啊。把这边删掉。好,再来看一下,还是等于no。还是等于那。真讨厌。看。嗯,错怪他了。啊。错怪了啊。看这。负数,这不对。这个错误,这是我之前是负数的时候,他他出错的是吧,清空掉再来。再说。现在再看有没有错误,现在没有了吧,现在没有错啊,他怎么刷不过来呢。
23:05
他怎么就刷不过来了呢?这已经过了好长时间了呀。还没刷过来。那就重启吧。在线点配count应该是没问题的啊,重启重启一下吧。这没问题啊,这边是没问题的。好,哎,这个错误就正常了。这个错误是正常的啊,我们把它拷过来,这个其实很简单啊。这个错误我们是故意犯的啊。回到我们的do层,回到这。
24:04
是我们的这一行报的错啊,是这一行报错,我把它放在这儿啊。39行报错。好报了这个错,这个错误他指的是你不可以把弄转化成in,因为他这个select的心他得到给我是个类型。哎,结果你强制纹intake不对是吧,行吧,改成弄。给他弄之后再扩起来。The value。行吗?你不能说扩起来之后再搞个小括号in啊,那不行的啊,要写个in发行。这样就这样就可以了啊。我们不重启试试。销毁者。好刷过来了啊,那现在应该是没问题了,行吧,同学们,我们再来点五页点一下是不是可以了。点首页点尾页可以了吧,因为咱们的这个总页数已经知道了嘛。
25:02
好,那这个尾页的这个功能,我也把它搞定了再继续。下面我们改一下这个一这个按钮可点不可点啊叫可用不可用这个问题。一个按钮,如果想让它不可用,同学们。呃,他一个属性叫叫迪斯。叫disable。Disable等于disable。那么属性名等于属性值,那么后面可以省略,还记得不?或者咱们可以写个two试试,Disable等于true,我们看一下到底到底能点不能点。那这个五页一把这个一删掉,如果他这边不显示一,就说明页面更新过来了。我们把这边全部都清掉。一还在上面说明有缓存刷一下。再刷一下,哎,没有了吧,现在没有了,你看这个首页和其他是不是长得不一样。他现在点不了,其他是可以点的。
26:00
是不是这首页点不了,因为我写的是disable true。所以大家就能知道了Dis able这个属性叫叫禁用,如果它等于to,表示这个按钮就禁用了。是不是这意思啊?行,请问什么情况下disable等于true?哎,对的,我们的三线点配number等于一不就完了吗?那行吧,咱们在这边写一下,那你这边得写一个TH冒号,因为你想用人家time的表达式嘛,所以这边得写一下。到大括号筛选点pageg number等于等于一就完了呗。是不是这个表达式,要不是true,要不是false嘛,那行吧,咱们就快速的写一下,以此类推,首页上页都是一样的,放在这。下面两个应该是什么呢?三星点number等于什么?哎,对的,Page count是吧。
27:00
当你的当前页如果等于五页了,你就不能再点了,可以去看我写完了。再来试一下。我们在首页这边写个一看他能不能给我更新过来啊。刷一下。诶更新过来了,现在你看首页和上页什么默认就不能点。当前默认是第一页,点下一页,点下一页,再点下页。点不了了吧,哎,他就禁用掉,点首页前面两个禁用,点五页后面两个禁用。写完了吗?同学们好,这是分页。好。
我来说两句