00:04
啊,我们来观察一下啊,我们刚才啊,这个打开了这个模态窗口,对吧,那这个模态窗口大家注意看啊,其中的这个所有者呀,要么是张三,要么是李四。哎,他是不是应该是从我们的user表中查出来的呀,诶这种操作好像很熟悉呀,以前是不是做过一种叫省市联动的操作呀。对吧?啊,所以说大家注意看啊,从我打开大家注意啊,从我点击这个创建按钮到打开这个模态窗口之间。我要不要先过个后台?哎,咱们来分析一下啊,都什么情况下需要过后台。
01:00
哎,是不是需要数据了啊,只有后台连数据库对不对?好,所以说我们想到使用啊去连后台了,是这样吗?所以说啊,我们现在这个ALERT123是不是就相当于是在我打开模特窗口之前,需要过后台做一些事啊,没错吧?好,所以说啊,咱们现在要的效果是这样,我现在点击创建按钮,我要点它啊,大家注意啊,我先点它点创建按钮,点它先干嘛呢?点这个按钮咱们是不是先过后台啊,从后台里边咱们是不是应该取数据啊,取什么数据?同学们,咱们是取优质列表这个张三李四啊,就得取这个用户表的数据对不对?取完数据之后,咱们是不是应该往这个所有者这里边铺我们取好的数据啊,这些数据铺完之后怎么办呢?哎,咱们再展现这个模态窗口,然后咱们再把这个模态窗口给它打开,打开之后咱们是不是就能选了。
02:05
对吧,好,就是这么一个流程啊好。我来看看啊。啊。我们现在要走后台了啊,走后台。好,目的呢,是为了这个啊,取得用户信息列表,这个为这个所有者下拉框。啊直啊直,好,那走后台。我们用传统星球还是阿贾克斯星球,能走阿贾克斯的,全阿贾克斯都不用过脑子了是吧?好,也就是说我们现在啊,从点击创建按钮到打开这个摩窗口之间啊,咱们肯定不能页面整体闪一下,是这样吗?应该是从点击它到打开它是一个很平顺很顺滑的这么一个过程,是这样吗?啊,咱们肯定不能是全局刷一下,整体页面闪一下对吧?好。
03:10
啊,所以说我们现在走一个阿贾克斯啊,阿贾克斯不再写了啊,都写好几遍了是吧?行,给他拿过来啊。今天上午咱们说备份一半,你别直接考我啊,你你自己写一半,然后考你自己了,好吧。行URL啊,咱们现在啊来市场活动控制器第一个请求,咱们的目的是什么?目的是不是为了取得用户信息列表这个数据啊,咱们刚才约定那关键字用什么来着,Get是这样吧,然后get什么呢?User list可以吧,好。其实咱们get一个用户姓名的这个列表也行,但是就怕什么呢,将来有一些扩充能理解吧,也就是说啊在这儿啊老师强调一下,咱们是不是把这个姓名列出来就行了。
04:05
但是除了这个姓名之外,万一我还要用别的信息呢?你光有姓名可以呢,就不可以了。所以说最保险的一种方式,我们就把整个用户对象给打包成列表,这个名字只是其中一项,OK吧,好的,我们来get you the list.do。好,注意看啊。哎,我发这个请求到后台对不对,对,给后台发点什么参数吗。咱们一会儿查用户信息列表,要查询条件吗?不要吧,无脑查所有啊。那这参数咱们就不要了啊,这个不要,这个参数你可以不往里边填任何信息也可以OK吧,好,但是我的习惯是直接把它关掉啊好,Ta应该是get还是post。添加、修改、删除用post登录与密码相关的参数用post,是这样吗?其他正常取值咱们是不是get就行了?好,Data来分析一下data我们要什么?这个data就好,好简单呢,要什么?你发这个请求的目的是什么?要往后台要什么?同学们,咱们是不是要的是用户信息列表啊?其实你的用户信息列表在后台一定被处理成了咱们这个list,这个不是student,这应该是什么?
05:29
U,咱们所谓的这个u list对不对?好,但是呢,打到我们前端肯定是以接的这种形式来打的,对不对?好,那么这种u list翻译成前端接身,咱们是不是应该是一个接身的形式的数组啊。好,所以说这应该是什么呢?一个一个的用户是这样吧,用户一用户二,用户三等等等,是这样吧,一定是要翻译成这种形式,OK吧,好,那现在我们来解析一下这个啊。
06:05
我们先来一个option opon是吧,先来一个空的啊。行。那接下来我们要把这个。接身数组给它便利了,好大家注意啊,以后我们应用最多的一种方式啊,到了点。Each,好,注意看第一个参数啊,我直接把这个接身数组给它铺上,就是什么呀,咱这个贝塔OK吧,接下来第二个我们写这个回调,它里边提供两个参数,其中我们观察的是这第二个参数,嗯,看到没?好大家注意啊。便利。出来的每一个N啊,就是每一个什么user对象看到没,我每一个N就是我每一个用户OK吧,好。
07:08
那接下来啊,咱们就得拼这个option了啊,HTML。加等于是这样吗?好。啊,咱们以这种拼字符串的形式,当然了,你也可以使用那个调那个点open的方法,是不是也可以啊,对吧,咱们直接拼这个字符串,大家注意哈,啊option,那这个option里边的这个信息是不是就是给用户提供给用户看的这个文本啊。对吧,好。来。加上什么,嗯,点什么。是内网是不是用户的名字啊。我把这个东西给你写全了啊,这个用户一这个接身里边是什么。ID。这里面什么name还记得吗?哎,然后再来什么log in act。
08:09
是不是都是这个用户相关的信息啊,是这样吗?那其中你看看啊,每一个N是不是就是咱每一个用户以杰森点什么点T的形式来取,我现在是不是取名就点内。对吧,里边的value写什么。也就是说我真正提交的所有者,我要把这个名字提交,让市场活动保存一个名字吗?我保存的是什么,同学们?咱是不是要保存的是这个ID呀,好,所以说这个value啊。哎,应该是什么这条记录的。ID是这样吧,好,也就是说啊,给用户看的是名字,但是它实际的值是IDOK吧,好呃,每一次遍历出来啊,咱们都重新拼一个option,是这样吗?最后拼完的这个结果呢,就是咱这个HTML这个字符串是这样吗?好,最后这个字符串啊,我给它写活,这个是不是原来写死了,同学们看看。
09:17
这三行是不是写死的干掉?ID我给它改的简单点啊,比如说叫create owner行吧,好,我现在要做的是什么,通过这个ID拿到select。然后为select标签,对,是不是附我们刚才拼的option呢,哎。来到。可对吧,点儿。HTML。H电苗没问题吧,好啊,当所有者下拉框处理完毕之后啊,所有者。
10:02
下拉框处理完毕后,我们要干嘛呢?好,展现什么就行了。模态。窗口是这样吧,好,所以说啊,这个模台窗口打开的时机啊,在这处理完下拉框之后再打开OK吧,行,那接下来是咱们这个后台啊,Get user list,那这个就很简单啊,自己都能写了是吧,好来一个啊。Get you the list。嗯。好,首先啊,这是咱们第一个啊。取得用户信息列表,好,大家注意啊,首先啊,你看看这是不是相当于与用户相关的操作呀。与用户相关的操作为什么是由我active controller市场活动的控制器来处理这个请求呢?
11:06
为什么?你不是用户相关的操作。为什么?因为你现在的这个请求是不是在我市场活动的这个模块里边发出来的,你市场活动模块里边发出来的请求,我不管你请求的内容是什么,总之你从我市场活动模块里边发出来的,那就理应有我什么。市场活动的这个模块的这个控制器来接收并处理请求能理解吧,但是在处理请求的过程当中呢,大家现在思考这么一个问题啊,对于业务层来讲的话,这是市场活动相关的业务还是与用户相关的业务?是什么?啊。
12:00
我就我指的是业务。业务,咱们这个业务大家想一想啊,这个业务本身是不是要拿到这个用户信息列表啊。那这个业务是不是相当于就是与用户相关的业务这一点啊,大家需需要这个摸清一下啊,你想一想啊,我们现在啊,要做的这个流程,做的这个操作,是不是完完全全与市场活动还没有关系呢。但是为什么我进入到这个市场活动的控制器,那是因为现在是在我的模块中发生的事儿,对不对?好,但是你真正在处理业务的时候,是不是与市场活动就没啥关系了?你总不能我是进入到市场活动模块了,是进入到市场活动控制器了,但是我用到市场活动相关的表了,我用到市场活动相关的业务层没有能理解吧,所以说啊,虽然是由我市场活动这个模块接收并处理请求,但是业务层咱们是不是应该用这个用户的,这是属于用户相关的业务啊,这点需要注意了啊,来一个user service等于什么?这么这回你们说我写。
13:10
还不愁呢啊,Service factory全张三取李四还记得吧,Get service new user service IL是这样吧,好,我用这个us啊,掉一个点get user list这么一个操作,不需要参数,对吧?好,来一个例子呢,是么?User好list OK啊,这个user啊,看看啊,这个别错了啊,User OK。行了,把这个U给它解析成什么呢?咱们说得解析成这种形式。那这这这东西能自己解析吗?是不是你得用工具啊,点什么print哪个O对不对,好response传一个什么u list,好我们再来看一眼啊,这个obj是不是把我们这个集合转换成这种接身数组的形式。
14:15
对吧。行,没问题啊,接下来业务层。好。呃,没有什么可解释的啊,就是什么调个到层就能拿到这列表吧,没有什么,没有什么流程可言,对不对,跟我们登录比起来简单多了,对吧,好,调一个user do get user。List好反一个这个list。User好,U list好,反,这个list OK。
15:08
行。来get user list result type user好后语句是不是就是CNE型服装表就行了。OK啊,好,我们来试试看啊。嗯。好市场活动点个创建走。看看所有者。张三李四没问题吧?是不是先过数据库,咱们从优表中取这个数据列表,铺完这个下拉框之后,咱们再把这个下拉框,再把咱们这个摩察窗口展现出来,是这样吗?好,这是一个啊,这是一个,好,那么需要大家注意的是什么呢?大家注意看啊,我们现在啊。
16:18
所用到的这种方式啊,这个是从什么呢?前端开发到controller,然后再开发到service,然后最后是到是这样吧,这种形式啊,在企业里边这个开发啊,它有一个什么好处呢?也就是说前端我们需要什么,我后端就给提供什么,是这样吗?好,但是将来在企业里边它还有一种方式什么呢?先开发。后端先开发底层能理解吧,然后再开发什么呢?再开发顶层,那么这种形式啊,就要求你对这个系统啊,啊,事先要经过一个非常详细的设计,能理解吧,啊也就是说啊,你先开发完一个方法之后,我再开发上一层,我是就能调这个方法了。
17:08
我们现在的方式是什么?诶是不是我先把这个方法我要用到的东西先写上,但这个方法还没有呢,然后我用到这个方法,我再生它,是这样吗?好,将来在企业里边这两种形式啊都可以,但是第二种形式要求你这个项目的整体的这个设计啊,事先要求做的啊,对设计非常高,OK吧,好,要哪个方法底层都设计好了,上层在这个做上层业务逻辑的时候,你直接调就行了,是这样吗?好。啊,再有一个啊,对于这个业务层啊,再补充一点,那大家注意看啊,我们现在worker be下,你看我对于这个业务层这个搭建,我是不是写了一个activity service,但是与activity相关的这个表是不是有两张啊。一个是什么呢?我看看啊,诶啊,一个是这个remark表是这样吧,还有一个是什么呢?X表对不对,那大家注意了啊。
18:06
我们现在这个DAO老师是不是写了一套啊。那将来要不要再写一套?哎,这个分阵营了啊,有很多同学摇头,有很多同学说要那大家注意啊,以前老师说过啊,咱们这个map映射文件,我以前说过一张表是不是对应一个do啊,所以说啊,我对于这个remark表,我现在要不要多来一个倒层?要吧,行,我现在啊,现在就给你建上啊,就给你搭上,呃,比如说在这里边儿,咱们应该是不是还得来个接口啊,对不对。好,叫activitymark DAO是这样吗?啊,那对于他来讲的话。咱们还得来一个re,哎,在这啊re,是这样吗?
19:01
Re mark。好,那大家注意啊,他们两个是一套,他们两个是是一套,对不对,将来如果你处理业务层,你用的activity这张表了,你用他俩,你要用到备注这张表,你就用他俩。哎,这个是必须的,那接下来咱们来分析一下这个业务层,这个业务层我写了一个activity service,我要不要来一个activity。Remark service呢,要不要呢?其实啊,对于业务层来讲的话,它的界定没有那么的严格,它不像倒层,倒层你是必须得给我来两个,两张表,两个刀面,两个DAO,这个是必须的,OK吗?但是对于业务层啊,它这个界定不是那么的明确,也就是说呢,我们现在啊,创建一个业务层其实也是可以的,为什么呢?因为不论是你市场活动业务本身,还是与市场活动备注相关的业务。
20:03
是不是都是属于我们市场活动相关的业务?是这样吗?我用一个业务层有什么不可呀,那将来不论是市场活动相关业务还是备注相关业务,我统一在这一个业务层里边写,没有问题,OK吧,但是呢,如果你的市场活动相关的业务和备注相关的业务,二者之间啊,交集比较少。虽然同属于市场活动业务,但是二者之间没有什么太大的联系,是这样吗?而且更重要的是什么呢?二者之间分别各自的这个业务啊,非常非常多,咱们是不是你在这种情况下也可以创建一个什么呢?Activity remark service,让二者之间的业务层是不是也给它分开,方便管理啊?对吧,所以说啊,都可以OK吗?好,那对于我们现在来讲的话啊,好省了一个什么呢?Mark这个service,那将来对于业务层来讲呢,啊,咱们这个activity和activity这个remark都属于市场活动相关业务,我们统一由这个一个业务层来处理,OK吧,好,但是倒层啊,你给我记住了啊,它必须是一张表对应一个OK吧,好。
21:16
那接下来啊,老师再来一个需求啊,呃,接下来这个需求是这个所有者呀,我想默认给他填一个,默认填的是哪个呢。你们认为是张三还是第四,是不是应该是他呀?哎,也就我当前登录的这个用户啊,应该是我这个下拉框默认的一个选项OK吧,那这个东西应该咋填呢?其实啊。你要用以前那个GS原生GS老麻烦了,我们之前都受过这个苦啊啊但是呢,这个解扣出来之后啊,那真的是超级的方便啊,我们来看一看啊,首先给大家提供一个小案例啊啊,怎么让下拉列表默认选中某一项,那大家注意看啊,下边我提供一个下拉框叫grade,什么意思grade。
22:10
年级是这样吧,从学校来讲是年级的意思对吧?好,那么我们先来看高中专科。本科,哎,这相当于是什么呢?是不是给用户看的文本呢?你不要你脑袋里边不要去考虑,哎,高中专科是什么,你是年级吗?你不要考虑这些问题,你给我考虑的是什么啊,什么是指什么是文本的问题,OK吧,高中专科本科是什么?是文本给用户看的,文本用户用的对不对?但这个value用户用户能看到吗?看不到,一代表高中,二代表专科,三代表本科,是我们程序员开发用的值。是这样吧,好,那我现在想要让他默认选个专科,专科是我默认选择的一项,你就给我来个什么点Val来个什么二这个值就行了,那这个专科呢,就是我默认选中的这一项,是不是超级简单呢?好,那根据我们这个案例。
23:16
好,来。继续来完善一下啊。哦。好,我们要讲什么呢?将当前登录的用户啊。好,设置为。啊,这个下拉框默认的选项。哎,咱们现在这个这里边儿这个ID啊,大家注意啊,Y流里边是不是都是咱们一个一个ID啊。对吧,那它就相当于是什么啊,咱们来看看啊,最终咱们呈现出来的效果是这样的,来看看啊C。
24:01
Like。啊,这里面什么option吧。Option对不对?好啊,这里边来个什么张三,我指的是动态拼接之后的结果是这样吗?啊,那这个Y呢,应该是个什么。我再来个李四是吧。啊。嗯,张三我看看啊。啊是这个啊,9FB3这个对不对。那是他吧。嗯。这个是李四。咱们拼之后是这样的结果,对不对,那我应该来一个什么呢?到。来个什么井号?
25:05
owner.vl填谁,咱们是不是填张三就行了,哎,他是不是就是默认的选项了。那老师那咱就是写呗。行,完事了搞定,是这样吗?不是。
我来说两句