00:00
好,昨天呢,咱们做了一个市场活动的这个添加操作啊,好,我把这个服务器打开啊。啊,先看一眼我们这个昨天的啊,完成的这个情况啊。然后每天老师的这个数据库里边这个信息啊。啊,从今天开始就要用了,所以说呢,这个同学们就不要连老师的这个数据库了,好吧。如果你的这个数据库啊,实在不好使啊,这个需要救急的话。啊,先连同桌的就行了。啊。啊,这个火锅昨天刚安的是吧。来,咱们来测一下这个啊。
01:01
我感觉重启电脑之后还是有点卡是吧,赵3123,咱们登进来。啊,来市场活动啊,市场活动啊,昨天咱们做了一个这个创建对吧。好创建好,那么今天呢,今天上午的这个时间啊,我们把所有的时间给放在这个啊,展现这个市场活动信息这个列表上,也就是说我们需要局部刷新出来啊,我们这个市场活动列表,那么我们发出这个请求,从后台取出去啊,肯定是一个阿贾克斯请求,这是肯定的,对吧?好,那么我们现在要展现的这个列表啊,那需要注意的是什么呢?我们要结合这种条件查询,而且呢,我们还要做一个这个分页查询,那将来我们实际项目开发中啊呃,至于s select形form表就这种功能啊,基本上啊,它不会存在很多,甚至是没有,我们将来只要做列表,只要做列表百分百。
02:03
是要分页操作的,OK吧,百分百要分页的啊呃,数据量再少咱们也得分页,OK吧,好,我现在啊,你看每页咱们默认展现的是不是两条记录啊。那以后实际项目开发,咱们能能不能是两条记录,那不可能,对不对,那比如说你展现一个学生信息列表的话,你至少每页得展现十条到20条记录不等,是这样吗?好,有可能十条或者12条,15条,18条或者是20条,是这样吗?好,那么我之所以啊这个把这个模板啊,暂时先设置成两条,是因为呢,我们通过这两条记录会有效的带我们去学习分页这种组件,OK吧,好,两页啊,更这个啊,每页两条啊,会更容易啊,让人去接受,好呃,那么我们除了每页展现两条记录,那将来我们引入一个这个控件啊,比如说类似于这个控件是不是每页展现多少条记录,是不是可以去设置的,对不对。
03:05
好呃,除了啊这些东西可以选啊,还可以手工的进行设置,OK吧,好,那么今天上午啊,咱们主要完成的就是这个列表的展现,而且呢,咱们这个列表的展现有可能我指的是有可能啊,也是我们这个阶段的这个考试的这个内容。OK吗?好啊,说白了就是我一上午给你敲的这个东西啊,啊需要你一个半小时完成,但是我是一边讲一边敲,是这样吗?啊行,我们来看一看啊,所以说啊,我们现在啊,这个列表的这个展现啊,它的这个重要性不言而喻,OK吧,咱们这个抛开考试不谈啊,那将来在实际项目开发当中,那至于对于这个列表的这个展现呢,其实也是我们项目的一个基础的这个设施,它是100%得有的这种需求,OK吧,好,所以说啊,这种东西咱们还得好好看。
04:01
好,那么接下来我还是先找到这个index点接SP好。来看看同学们啊,我在页面加载完毕之后啊。我想触发一个方法。来看看啊。页面加载完毕后,我需要触发一个方法,那这个方法呢?我给它命个名叫做page list。我调这个方法的目的就是为了。连后台,到后台去取数据,然后局部刷新出来咱们的这个市场活动信息列表。OK吧?这是我们的目的啊,好,我要为这个方法啊传两个参数,一个是一,一个是二。好一会儿我给你解析这个一和二是什么意思啊。
05:01
Function,咱们来个G。List。好,第一个啊,我管它叫做page number,第二个我管它叫做page。三。好,那这两个参数什么意思啊,那大家注意啊,对于。好,所有的这个啊,关系型数据库啊。好,那么做前端的啊,分页相关操作的这个啊。基础组件啊,好,就是咱们的这个number和page size这两个条件缺一不可,他们两个是必须得有的,OK吗?好,那这个page number是什么呢?我们先来看一看啊,Page number啊表示的是。验吗?当前页的页码就是第几页的意思,OK吧,页码,然后我这个page size来看一看啊,什么意思。
06:10
叫做每页展现的记录数。OK吧,那老师啊,那这在我们做这个分页的时候,除了这个页码。以及每页展现的记录数,我们应该还有一些其他的信息啊,比如说啊,总共的条数啊,总页数啊等等等等啊,是这样吗?那为什么只有他们两个呢?那大家注意啊,我刚才说了这两个啊,它是做前端分页操作的基础组件,是不可或缺的,OK吗?有了他们两个,其他的东西我们全有,那么在我们前端上主要操作的就是这两个组件,能理解吧,你就记住有这两个组件就行了,OK吧,好,呃,那将来不论是咱们做这个my circlelel数据库还是Oracle数据库啊,都是离不开啊这两个条件的,OK吧?好,那么大家注意啊,我现在在页面加载完毕之后,触发一个方法,Page list的一二,那我想要做的是什么呢?
07:17
一二他接收的是一,他接收的是二,什么意思?也就是说我在页面加载完毕之后,是不是。默认展开什么呢?展开列表的第一页。每页。展现两条记录,是这样吗?OK啊好,那么大家注意看啊,我现在啊,相当于在这个方法里边啊,好展现这个啊市场。活动列表,我这个alert在页面加载完毕之后是自动弹出来的吗?
08:05
是不是?好好。是不是自动弹出来我这个alert弹框的这个时机,其实就是什么呢。哎,我把请求发到后台取数据,取完数据之后铺数据的这么一个时机是这样吧,好,那么我们接下来再来分析一个,大家注意啊,也就是说咱们现在的这个拍句例子的方法啊,好就是什么呢?好就是咱们将。啊,发出请这个阿贾克斯请求。到后台,从后台取得。啊,最新的市场活动信息列表的数据是这样吗?然后我们在前端啊,通过。这个啊,响应回来的。
09:04
数据啊,通过响应回来的数据啊,这个局部。啊,刷新咱们这个市场活动信息列表,好,也就是说大家注意看啊,老师刚才点了一下这个市场活动对不对,我点点完了之后铺页面,页面加载完毕之后,自动发出一个阿贾克斯请求,那么从阿贾克斯请求到后端,后端为我们取得市场活动信息列表,当然了,给我们取得是不是第一页每页取得两条啊对不对?好,然后把这个数据打过来之后,我们给他做一个什么。这个局部刷新的操作在这局部刷就行了,是这样吗?好,整个这个过程啊,是自动完成的,是这样吗?好,它就对应了我们之前的哪张图呢,我们往前翻一翻啊,同学们啊,还记不记得第一天老师来的时候给大家画个图。
10:09
啊,咱们说画个图,咱们现在是不是一个传统请求到达了这个目标页,大家注意啊,只不过我上面是以这个学生举例,是这样吗?啊行,往大放一放啊,是以学生举例,是不是先到达了这个列表里面,但是这个列表上有数据呢。没数据在页面加载完毕之后,是不是自动发出一个阿贾克斯请求到后台啊,哎,取数据返回接身解析接审就相当于拿到了学生信息列表,把这个列表就局部刷新上来了,是这样吗?好,它也是一样啊,我们通过点击这个市场活动这个所述的这个菜单,那么在我们的工作区其实呢,是先展现出来了我的index.gsp这张页面,但是在这张页面上对于数据的部分它是不是肯定是没有的呀?
11:00
先跳转到了这样页面对不对,但是没数据,在页面加载完毕之后,它自动发出一个阿贾克斯请求来取数据,是这样吗?好。好,接下来一个问题啊。好。我们都在啊,哪些情况下。需要调用。Pageg list方法。好,也就是说在什么情况下啊情况下需要刷新一下列表呢。好,咱们有以下几种情况,第一种情况,刚才咱们是不是做过一个了,就是它吧,这个入口是在在这儿呢,对吧?好,也就是说点击这个啊,点击咱们这个啊,左侧的这个啊。市场活动。
12:03
啊。点击左侧菜单中的市场活动超链接的时候。没错吧,这是不是一个这个入口啊,先到了这个页面,然后调的这个方法是这样吗。第一个入口在这儿,大家注意啊,在这你点。哎,刷列表对吧。还有没有其他入口?好,我昨天写了一个创建,创建完毕之后,昨天我们做的一个保存对不对。保存完毕之后啊,在关闭模态窗口之前,其实我们需要先刷新一下这个列表,但是昨天咱没做,是这样吧,好,那么在修改之后呢,大家想。是不是也是一样啊,修改操作之后是不是也得刷列表啊,删除之后呢?也得刷列表对不对,好,所以说啊,咱们第二个入口在。
13:05
什么呢?添加。修改删除后这个啊需要。刷新这个啊,市场活动列表是这样吗。啊。第三个呢,还有没。哎,点查询的时候对不对,如果上边的东西咱们一个都没填。咱点查询相当于什么来着,还记得,哎,查询所有相当于没有查询条件嘛,那就查所有呗,对不对,那如果有查询条件的话,咱们得挂上这些查询条件,你每一次点查询的时候,咱们是不是肯定得刷这个列表啊。是这样吗?好。点击查询按钮的时候啊。
14:07
还有呢?哎,点击下边的分页组件的时候,你点击首页尾页上一页下一页第几页的时候是这样吗?你每次点这个列表肯定刷新成最新的页码的,这个数据是这样吗?好,也就是说啊,点击分页组件的时候是这样吗?好,那么一共有几处呢?也就是说啊,我们都需要调用这个配举例子的方法的,这个入口有几处啊同学们。是我那个标号是四,但是我那个标号挺坑的啊,添加修改删除是不是相当于三个入口。
15:03
对吧,那加在一起是不是六个入口啊,对不对,好以上啊,为咱们的这个page list方法啊方法啊制定了。几个入口。六个入口OK吧,也就是说好在以上六个操作。执行完毕后,我们必须要调用什么方法呢?培军list方法,刷新市场活动信息列表,没错吧?好,那么现在啊,我们来看一看这个page list方法,很明显的是,我现在是不是需要走一个这个阿贾克斯星球。
16:00
没错吧,好。因为咱们这个列表需要局部刷嘛,对吧。来阿贾克斯呢?在泰森里呢,是吧。好。嗯,这个方法啊,我给它列为是一种比较特殊的方法,其实它就是一个查询对不对。但是呢,为了显示出咱们这个方法特殊性啊,我把这个方法就叫可举例子度了,这个比较方便记忆,跟我们前端这个方法保持一致啊,OK吧。好,Page list,贝塔,我们需要传递什么?都需要传递哪些参数?为后台提供的参数有大家注意啊,首先啊,咱们肯定得干嘛呢。做分页查询吧,你得让后台在做查询的时候知道。
17:05
我到底要查询第几页的信息,每页展现多少条记录对不对?所以说大家注意这两个参数是不是已经提供好了,直接传递给后台就行了。啊,比如说啊,我上面用的第一个入口是不是传递了一和二,需要传递给后台,让后台知道我查的是什么呀。没错吧,好,所以说啊,首先咱们先需要一个。Number。Number是吧?还需要一个page page没问题吧,那除了他俩之外。咱们除了分页查,咱们是不是还得条件查。这条件上面有几个参。
18:00
用四个参数,这四个参数是不是你也得传递到后台,否则的话后台怎么知道。我的条件是什么?是这样吗?OK吧,比如说你查这个所有者,你查这个姓张的所有者对不对,你就得把姓张的这个张这传递到后台,让后台去做一个模糊查询呢,对吧?好,所以说啊,我们需要将以下四项啊给传递一下,找一找啊同学们好。在这呢啊在这儿呢,这个查询按钮啊,在这儿呢,好,首先咱们来一个这叫名称,咱们起一个ID啊呃,昨天咱们约定好了,对于前端的这个表单来讲的话,添加系列咱们是correct杠,是这样吗?修改系列的I杠还记得吧?好,查询系列啊,比如说我管它叫search杠可以吧。好,咱们来一个name,好,所有者来一个ID啊,Ch search,杠。
19:09
行吧,好,开始日期它有了一个ID啊,咱们给加上TH-s star start。对不对,好,那接下来下边的这个啊。社区。End date没错吧?好,查询这个按钮大家注意啊,危险的地方又来了,Type等于submit,是不是很危险呢?为什么锁太危险?他是不是相当于直接以传统请求请求形式提交这张表单,我们这张页面肯定是一次全局刷新的操作,是这样吗?好,所以说啊,这一点来讲很危险。改成。Button好起一个ID,比如说就叫search search button可以吧?
20:01
好为咱们这个查询啊。也可以给绑一个视线啊。为查询。按钮啊,绑定事件啊,这个啊,触发page list的方法。点click function,好,我暂时就来一个这个page list,这个一和二的行吧,好,这是不是相当于又是一个入口啊,咱们一共六个入口,这是一个,这是一个,是不是写了两个了。咱们刚才不是分析了吗?点击查询按钮的时候没错吧,是不是你得调这个page list的方法啊。没错吧,好,那大家注意看,咱们现在这个参数是不是得多几个呢。得多四个查询条件,是这样吗?
21:00
好,首先是name。好,咱们来个到了点。对吧,这个是什么系列来呢?Search杠系列的这个是name对吧点。Val,咱们来取这个表单元素的值对吧,好。一共是四个啊,然后接下来是owner。然后接下来s start start date以及我们的and。Date好。Start date。End date。OK啊,我们一共传六个参,其中呢,上边这两个参是做分页查询的,下边这四个参是做条件查询的,是这样吗?
22:10
也就是说这个page list我有可能是没有条件的。是这样吗?哎,这个分页条件这俩是不是必须得有呢。因为老师刚才说了无脑查,所有咱们一去不复返了,以后肯定分下查,这俩是肯定得有的,是这样吧,那这四个。他只有在点击查询的时候才会有啊。是这样吗?哎,那为什么要加在这呢。大家想这么一个问题。也就是说啊,同样是刷新市场活动信息列表,是这样吗?我一共有六个入口。我总不能为那五个入口。
23:01
写一套培举例子的方法,我为这个查询的入口写一套培举例子的方法,我不至于吧,我是不是相当于我把它们合并成一个方法了,能理解吧?也就是说啊,如果我从其他入口进来,例如我点击这个市场活动这个左边菜单,它一定是没有条件的,我们刚刚进入到这张页面,是这样吗?没有条件就相当于什么呢?这四项信息,它后边传的值是不是肯定都是空的?是这样吧,那你想一想啊,如果这四个条件没有的话,那咱就不查你呗,有你我就查,没有你我就不查。这是不是就是我们MYBAT中的动态circle的机制,还记得吧?Where标签结合if标签能理解吧?OK啊,所以说啊,这四项大家注意啊,完完全全有可能都是空,也有可能什么呢?你在做查询的时候。
24:06
有些填了,有些没填这四项,这四项啊,某些项它不为空,有些项它为空,但是那如何呢。有你你有我判断你你不等于空,同时不等于空串,那我就查你呗,那你要是空我就不查你呗,是这样吧,所以说我要让这六个入口调用这个配区list子方法,让这个配去list的方法只有一个能理解吧,服务于六个入口。OK吧,好,所以说啊,我现在写的是一种什么呢?通用的这个方法,我既可以满足什么呢?好,我点击左边菜单,没有条件的情况也可以满足,我再点击查询有条件的情况,OK吧,好的。
我来说两句