00:00
然后呢,大家看我们来看看这俩图标,这俩图标其实大概我们现在做显示备注的时候,其实无所谓了,对他肯定能显示,但是我们以后什么要接下来我们要做修改这条备注和删除这条备注。那都得通过这两个图标来做修改或删除。也就是说将来我们一点这个这个什么,一点这个修改图标的时候,来修改这条备注,一点删除图标,要删除这条这条备注,那不管是修改还是删除,我要什么操作这条备注,是不是我都得拿到这条备注的ID啊。对,都得拿到这个备注的ID,那都得拿到这条备注ID,我将来不管点哪个按钮都得拿到这个备注的ID,那如何才能拿到这个备注ID呢?我将来一点他们。对,我要把我这每一条备注的ID,是不是把这些ID都绑定到这每一条备注后边这两个图标上面去,对绑定上面去,那如何把一个数据绑定到某一个标签上面呢。
01:10
对,那这个时候呢,用到我们一个很重要的一个思想中,对重要思想,大家可以回顾一下,我们以前怎么做过,以前我们做过把数据绑定的标签什么时候这个看不。以前我们在查询列表的时候,是不是每一条市场活动前面都有个check boxs,我们以前给大家说过,以后我要修改或删除每一条市场活动,那我将来选中之后一点修改或删除按钮,我要拿到每一条选中的市场活动的。ID,当时我们说我们我们是怎么做的。IDID绑对,把ID绑定到这个拆boss,这个按当时怎么绑定的。怎么绑定的?
02:00
ID对,是不是给每一个拆包子后边都加一个Y6属性啊对,把我们每一条备注的ID都有什么设置到这个Y6属性值上,那么以后我们选中谁了,一点修改或删除,然后呢,只需要获取被选中的check boxs上面的那个什么Y6属性值,哎,我就拿到他的ID了。这是这种思想。什么样的思想,就是说这样我要把我的数据绑定到某一个标签上面。那我就给这个标签加属性。加属性干什么?把我的数据设置到这个属性的值里边。那么将来我什么要获取这些数据的时候干什么?只需要获取这个某一个标签上面的指定属性的值,我就能拿到我以前绑定的值了。知道吗?那这个其实大咖这个思想也是一样的,这个思想什么以前我想把数据,我我以前我为了什么修改和删除市场活动,我为了获取选中的泰克boss,诶我能拿到ID。
03:05
那以前我是把数据绑到拆boss上面。所以我给拆box上面加属性叫Y6属性,那现在咱家同样的道理,我想什么将来点这两个图标的时候来获取这个值。是不是我就可以什么把每一个备注的ID绑定这两个图标上面。绑定那图标,那只不过不一样的地方是,以前我们绑定拆个包,上面加Y有属性,现在我要绑定的是这两个图标,这两个图标都是A标签,那我就绑定到A标签这块不就行了吗?那绑定A标签,绑定了A标哪些属性,理论上讲啥属性都行。你只需要把你的数据绑定到什么这些标签上面就行了,那么将来你点这些标签的时候,只需要获取你点的这个标签的那一个属性值就行了。这样就拿到数据了,知道,所以这是我们这个思想知道吧,这个思想就是这样,这个思想就是这这个思想,嗯,就是让标签叫使使用标签帮我们记录一下,或者叫保存一些数据。
04:13
使用标签帮我们帮程序员来,那么保存一些数据,就是使用标签这种思想,使用页面上的标签,使用页面上的标签来什么来保存数据,保存数据这是一种很很重要的思想。使用标签帮我们保存数据,保存数据干什么?以后需要的时候能获取到它,不是绑着玩的,等你以后需要的时候,你能获取到它,这才是我们绑定的意义,就像我们以前那种check boss绑定ID的时候,我做什么,我做修改和删除市场活动的时候,我想获取到它,所以我就绑定它,那我这个地方同样道理啊,我要把备注的ID也要绑定在按钮上面,那什么时候用他们,当我一点修改或删除按钮的时候,我想获取到他们。
05:08
知道吗?所以说他这个思想就是使用标签帮我们保存数据,以便以便在需要的时候,以便在需要的时候来做,能够什么能够获取到。这些数据能够获取到这些数据,所以我们才绑定的,知道吧,这是我们这个思想。这是这个字,这些标签我们可以随意,你想让哪一个标签帮你属性,帮你保存属性都可以,理论上用哪一个属你用哪一个标签都行,但是我们到底用哪一个标签,你看你以后用的时候点哪个标签,你就让哪个标签绑定啊,为什么要不点哪个签,因为你点的时候你能获取到那个标签,到什么解块的对象,盗墓对象啊,获取到之后我就能获取到属性,是吧,就这意思,就这个思想。那袁老师到底咋让他给我保存,怎么具体怎么操作,怎么让标签帮我保存数据,我们的思想就是给标签加属性啊,给标签加属性,具体做法就是给我们的标签,给标签标签,给标签添加属性,添加属性。
06:22
这样来实现让标签帮我保存数据,把我们的数据保存到这些属性值里边就行了。那加属性这个时候你说老师我是不是给标签加任何属性都行,理论上来讲是可以的。理论上就可以,但是一般来讲啊,一般来讲我们我们有原则,有什么原则,有这个原则就是如果,如果你这个标签是什么,是表单组件标签。就是表单组件标准,我前面给大家说了,就什面input标签TEST2标示什么select标准,如果是表单组件标准,如果标签,如果是表单组件标签,表单组件标签标签,然后呢推荐优先使用优先优先使用优先使用属性什么属性对Y流属性。
07:19
外流属性,就为什么优先使用外流属性。获取,对获取的时候方便是因为一那些表单组件标签在W3C这是标准化组织,定义这些标签的时候就已经定义了这些属性,所有的浏览器对于这些标签都默认支持这些属性,就默认有属性,有这种属性,所以我到时候获取的是好获取,怎么获取,通过盗墓对象直接点Y流属性就获取到了,对获取的好物啊,优先使用Y流属性。那假如说那么那只有什么,只有什么,就是只有只有这些属性什么只有Y6属性不方便使用时,不方便使用时不方便使用。
08:09
哎,怎么还有不方便使用啊。有这种情况,怎么有这种情况,你比如说他,其实你比如说我们这个对你比如说我这个拆个boss这个标签,我想让他给我保定属性,诶给他放出复制到Y6属性里边就行了,如我想把它保,我想让他给我保存数据,那就放在YYY6属性里边就行了,那如果你要保存一个数据,诶那他放出外置属性了吧,我想让他给我保存俩数据呢。你一个外流口音够用吗?不够用,所以你这个外力水平就别被别的数据已经占用了。别的数据占用,别的数据占用了,你再保存你的数据就不方便了,不方便这时候怎么办?是吧,只有Y6属性不方便使用,就被别的数据已经占了,这个时候怎么办呢?对使用自定义属性,使用自定义属性,使用自定义属性叫自定义属性,什么意思?你随便给这个标签起一个属性,那我随便写可不可以随便写可以是吧?但是你前提是你的这个标签属性名你得符合标志符的命名规则。
09:19
就我们以前学的标志符命令规则,只能由字母、数字、下划线、美元符号来组成,不能以数字开头,知道吧,要只要符合这些标志符的命名规则,你随便自定义属性就行啊,你说老师我我们这块我们写这些标签可以随便加属性吗?对可以随便加,你随便加属性,随便加属性都可以随便加,而且属性值是随便附知道吗。知道吧,而为什么这样,当我们说这又说到我们这个ATM,又说说到我们每一门这种语言的什么,他这种就是每一种语言的它这种特性了,或者是他这种这个这个本质了,是吧,本质了其实HTM2这标签就是HM2标签,那么HTM2标签其实它是XM2标签的一种。
10:11
语法,嗯。XML大家以前学过这个这门语言,这也是一门语言,叫标记语言,这门语言叫什么?它有个XML吗?XML这门语言,这门语言叫什么大?M叫程。叫对,叫markup标签的意思,L呢,X呢?叫什么?叫什么可扩展的标记语言,可扩展的标记语言什么意思?就是他给你提供这些标签,你可以随便在里边加属性,扩展属性你扩展,你想扩展几个扩展几个。都不违法,知道吗?所以这是我们说这可过了,所以说呢,我们这标签以后你想用到哪些属性,你随便加就行,爱加几个加几个没人管你知道吧。
11:03
这时候我说那我们这个时候如果不方便的时候,我们就可以随便加属性,加上属性之后呢,那我就可以给这个属性赋值,赋值上怎么以后一点这个标签的时候,我就可以获取到这个属性值就行了,这样数据帮我借了。这是我们说如果是表单组件标签就这么来做,还有那如果不是表单组件标签呢,如果是普通的标签,我想让他给我写数据,都我想让他给我什么记录数据,那这个记到什么属性里边,你说老师能不能用VALUE6属性,这个时候我们不推荐大家用外六属性。为什么呢?因为不是表达组件属性,我们都知道表单组件属性是什么,是W3C组织跟这表达属性跟这表达组件属,那么已经定义好了外力属性,我们把这种属性,W3C标准化组织给某些标签定义的时候起的这些属性,我们把它叫做原始属性,原始但是我们说这些如果不是表达组件标签,他们没有,他们没有这种属性。
12:08
没有W3C定义的时候,他们本身没有Y流属性,你说没有Y流属性,你不是说可以扩展吗?扩展只要符合标准,没有规则,我就给他加Y流属性,这不也可以吗?其实也可以,但是我们不推荐,不推荐使用,就不推荐水性Y流水性不推荐这个中不推荐使用Y6属性,那为什么不推荐呢?大家是这样还是其实它受上面这个影响,上面我们说W3C标准化组织定义表单组件的时候,加这个属性,你要如果你在普通的标签你也加这个属性,有些浏览器上候。有浏览器做的不好的浏览器,他是他做什么,他这他一看诶,你出现一个VALUE6属性。他就认为哦,你这个Y流水,你肯定是写一个表单组件标签。他一看,诶,你不是表单组件标签有的有的浏览器比较少,他什么他觉得你写错了,为什么你想写表单组件的,结果你写成别的标签了,他说你这个写错,他就有可能给你报错啊,你要写别的普通的自定义属性没关系,他不认为哦你写错了,就这个意思。
13:18
所以我们说不推荐使用value力属性,那你说我用什么属性?推荐推荐推荐使用自定义属性,使用自定义属性。就推荐使用自定义,就这意思。所以这是我们说的这个地方,大家你记住,只要是表单组件标签,让他给我记记记数据的话,就用Y6属性,Y6属性不方便再用别的,如果不是表达组量属就不能用Y6,用别的就行了,随便定义就行了,知道吧。这是我们说到这,那现在呢,我问你,我想让这两个A标签帮我记录数据,记录什么数据每次变成这个什么这条备注的ID,我想办法给他给这两个标签绑定上。
14:10
那我是不是要给这两个标志加属性了,加什么属性?是不是自定义属性了,就别用Y6属性了,知道这是我们的这种原则知道吗?那自定义属性叫什么呢?随便爱叫啥叫啥,只要符合标志手术命名规则就行了,当然我们肯定是建明之意了,那假如我给他几个属性,那这个属性你这写,那我这个地假如说叫备注的ID,那我就叫remark ID,然后它的值值是多多少。那就是把这个什么,每次变出来这个备注的ID写在这就行了,以后我一点这个标签,我只需要获取这个属性就行了。或取这个属性,那我就拿到ID,拿到ID我就可以修改它了,同样道理,这个删除的这个标签也给他定一个属性叫remark ID,这个属性也叫它,它的值也是绑定每次变利出来的这个remark ID,这样就行,这样的我一点它以后我也只需要获取这个属性值,我就拿到ID,拿到ID我就会把这个备注删了。
15:16
好,这是我们做到。好,这是这是这样好,这样我们这个地方就写完了,写完之后我在这个地方再给大家再延伸一点,哪哪一点这个地方。如果是表单、组件、标签,他们都有原始的Y6属性。那我以后获取这个属性的这个Y6属性值的时候,我就可以这么获取原始的属性,可以直接将来一点这个标签,我要获取这个属性值的时候,我就可以这么两种获取方式。哪两种获取方式,直接盗墓对象,拿到这个标签的盗墓对象直接点Y6属性就能获取到那个值了,就如果是Y6属性的话,就如果是表达组件标签加了一个Y流属性,我想获取这个属性值,到时候直接将来一点的时候,拿到这个标标签的盗墓对象直接点Y6就行了,知道吗?知所以这样,那么我们以后什么获取属性值,到这获取属性值时是一个是什么?如果如果获取说如果获取表单组件标签标签的value属性值,属性值由于每一个表单组件都有原始的VALUE6属性,我们获取的时候可以直接通过盗墓对象这个标签的盗墓对象点VALUE6属性获取到。
16:49
当然也可以通过什么解query对象获取怎么获取?获取解query对象点获取value值咋获取?对VL这样获取,这两种方式都能获取到,这是获取表单组件的Y流属性值。那我们再来看看获取,不管是表单组件也好,还是自定表单组件,还是其普通的标签也好。
17:15
只要是自定义属性获取的时候,大家只能用什么,就这这种方式就不行了,盗墓对象点属性名就不行了,知道,所以这个地方如果啊,如果这个属性是自定义的,自定义是自定义的属性,如果是自定义的属性吧,如果是自定义的属性,就不管标签是,不管是什么标签,是表单组件还是普通的标签,不管是什么标签,那么那么获取的时候都只能用这种,只能只能用这种方式,哪种方式叫j query对象啊,用j query对象获取这个标志结块对象,然后呢,点哪一个呢。
18:07
At t后边带上那个属性名,就你自定义那个属性名就行知道。自定义的属性只能通过解块的对象点at t2来获取啊,这我们以后用到时候可能会用到这一块,大家先记住它啊,先记住它知道吧,不管什么标志,只要自定义属性只能通过ADR,好这一个我们就给他说多少,那说到这大家我们这个什么备注就编辑完了,编辑完都显示完了,这样的话,我们这个对这个前台页面也写完了,前台页面写完了,那这个流程流程还没写完呢,哪个地方前台还还有哪个呢,还没发请求呢,是吧,对还没发请求,然后我们上次做到这个查看市场的明细,这其实这种明细功能也是我们以后的一个基础功能,就基础功能就说就是说像我们这个数据库中的一张表,任何一张表。
19:07
基本上在系统里边都要提供对这个表进行增删改,查查看明细的这个功能,就这五个功能是基础功能,基本上每一个表都有,你到以后到公司里边,那你做开发的话,基本上都这样,像这个导入导出这些不属于基础功能,就是只有一些重要的表才有导出,导入导出这种功能。别的像这些什么,这像这个增删改,查查看明细,这些都属于基础,所以大家你以后到工作这做的话,基本上都是这样,好,这是我们知道,那他的做法基本上也都是这样,那么用户在查看列表数据的时候,列表上面只能显示。一些关键信息。而且只能显示这一条数据的信息,那用户想查看最详细的信息,还有关于跟这条,跟这条记录相关的别的信息的话,别的表就能出去的话,就只有查看明细了,就这所以他做的时候,他什么一点名称超级链接,跳转明细页面,在明细页面上去展示,还有一些大家以后做的时候,大家你还会遇到这种情况,有的时候他这个地方不做这种超级链接,现在就大大部分都做成超级链接了,就以以前那种项目,大家可能会见到一些老的项目会做成什么,这对在后边,在后边这个有这个地方有一列是吗?就一列叫操作一列,然后后边加几个按钮,这按钮有什么,一个是修改。
20:33
一个修改的按钮,你点修改哦,修改这条记录,还有一个什么,那么这个什么删除,你点删除,把这条记录删了,还有一个查看明细,或者叫详情知道吧,一点它,诶跳转到明细页面了,就这样了。所以现在大看现在这种美工现在都不这么设计了,现在美工就是修改的话,你选中一个修改删除,你选中删除。查看明细,一点超级链接就查看明细了,所以大家你以后到工作的时候做的时候,你要特别是老的美工设计的话,有可能会这样,有可能做成这样,当然对于我们而言的话,做法都是类似的,你要如果做成这样的后边几个按钮的话,你要修改的话,那肯定这些按钮都应该给这个每一条记录的ID绑定。
21:17
一点它也会查到摩大状口,把这条记录的ID,你知道吗?这这个传到后台,后台查出来之后都显示摩大状口上显示出来删除一点,它向后台发个请求,把ID发到后台,把这一条记录删了,只不过这个时候你只能一次删除一条记录,不能批量删了,知道吧,那查看明细一点详情,诶也是个那吧,跳转到是个按钮或者一个超级链接跳转明细的是,所以大家知道这种做法就行了,是吧,有一些到公司这边有一些需求是这样,是这样想,但是做法对我们来讲都差不多了,知道吧。好,这时候我们说到关于这个查看市场红明细,这我们就说到这了,下边我们接下来这这些功能都是围绕市场活动明细页面,这个这个页面上的相关的功能来做了,来展开了,好这是我们这样啊,当然我们这样现在用户能够什么在查看某一条市场活动明细的时候,能够跳转到市场活动明细页面了,就能够跳转到这个页面了,知道吧,然后呢,在这个页面上,我一个是会展示这一条市场活动的基本。
22:23
再一个会展示这一条市场活动下的一些备注信息,知道那大家我们上次做的时候,大家会看到我们这个市场活动现在还都没有备注,这备注什么意思,就说用户在查看某一个市场活动明细的时候,他可以发表一些意见,在怎么发表意见,就在这个地方,在这输入,他有对这个市场中有什么看法,就说假如说我对这个日期,我对这个日期有些看法,说这个日期举办这个我嫌太短了,能不能增加几天。或者有一些人你会参与或者投入成本,有什么意见,那我也可以发表一些意见。那发表完了之后,那个一点保存,那就保存到备注表中,保存成功了,那在下边自动的刷一下,能够能够刷出来这条记录。
23:08
那保存失败提示信息就能,那下边我们就准备来这个做这个可以用户可以对某一条市场活同,在查看这条市场红明细的时候,可以对他发表一些意见,知道吧,叫添加市场龙的备注,所以下面我们就准备来做种添加备注知添加市场龙的备注,添加市场活动备注这么一功能,那添加了他的这个他的需求,我们首先做的话还是明确需求。看到底要做成什么样子,然后我们再设计一下看做一做,那我们知道咱他的需求就是用户在查看某一条市场活动明细的时候,他对这条市场我们有看法,那他就是在这儿可以输入他的看法,输入备注的内容,这样输入,那输入输入完了之后一点保存按钮,向后台发请求,那样说把这些内容都发到后台,然后呢,后台CTRL的接到之后,把这参数都拿到,拿到之后往市场活同备注那个表里边添加一条记录。
24:13
添加成功了,告诉前台添加成功了,然后怎么前台把这个地方清空了,他想再加一条呢,然后把这个地方这个列表刷一下,怎么刷,就是你添加一条记录在这个地方就追加一条就行了,在最下边追加一条,然后上面这些就不用动了,人家没动的你就别刷了,那老师我就刷一下,你刷一下你得从后台再去查一遍。那查一遍的话,那你后台压力就大了,并高并发访问的时候大家都添加,都又查一遍,每栋的数据也查,本来不需要查你就查了,那查的话后台压力大了,再一个你查完之后得光前台页面上返回,那返回的时候得占网速。这些没变的数据你又查一遍,又往前台返回了,那这个时候一个是后台压力大了,再一个对用户的网速要求高了,万一他网速稍微慢一点的话,你这个得传半天才能传完。
25:09
所以我们这个地方应该做成动态的,动态刷这个列表怎么动它的,你添加一条记录,添加成功了,在下边就追加一条,直接用JS代码动态的加一条,这些没动的都不用动。所以这是个局部刷新的过程。添加一条就添加一条知道吗?那如果失败了,如果说一点保存添加失败了,那失败的话,那就提示一下就行,那这个地方也不用说了。不用追加一条,那这个地方也不用清空了,那用户想看看哪个地方输错了,是有一些敏感的词啊,还是一些还是一些,还是什么原因,那之后他想看一下到底哪个失败了,所以只是提示一下,也不用清空这个地方就不用说。这是我们整个市场活动备注添加的这么一个需求。好,大家对这种需求有个大概了解之后,来看一下这个需求文档的描述,大家可以看,这是我说添加市场备注在这个地方,他这个描述,他说说用户在市场活动明细页面输入备注内容。
26:11
然后呢,点击保存按钮,完成添加市场中的备注的功能,这跟我们刚才说的流程一样,他说这个添加的时候它有些特殊要求,说添加点保存的时候,备注内容不能为空,这个地方你必须有内容,你要说啥都不输,一点保存不让点。因为你就是发表意见的,你这个意见不写没意义,向后台请求都不让发,发了也没意义,你知道吗?好,再一个添加成功之后,然清空输入框,然后刷新备注列表,那么清空框,然后把这个列表刷新,列表刷,其实别的没动的都不用动,只需要在下边追加一条备注就行了。动态的要求。再一个我们说他说添加失败提示信息,输入框不清空,让呢列表也不放心。
27:00
好,这是我们要说的,大概他这个需求。当我们就做成这样子,那大家对需求有个了解之后呢,下边我们还是一块儿来分析一下,还是流程怎么做,我们说做一个功能,现在对我们来讲的话,技术都不是最主要的。最主要的就是分析这个流程知道吧,下边我们一块来分析是吧,我这个方来简单画一个流程图啊,那画流程图这个地方来画,在这个地方来添加备注吧,右键再创建流程添加备注,添加备注这样。好,然后呢,把它双击打开,在这儿画出六轮图。然后呢,话说首先我们说所有的流程都是从客户端发起的,所以我们第一个环节就是客户端。那客户端如何发起需求说的很明白了,说用户在市场活动明细页面,他查按一个市场活动明细的时候,他对这个市场活动有一些意见,那他就可以输入在输入方式输入备注内,所以我们说用户在客户端第一个环节就是说他的用户输入备注内,用户输入备注内容,呃,备注内。
28:11
在哪输入,那在在市场活动明细页面,在市场活动明细页面输入这个备注的内容,他输入备注内容,输完之后他就点那个保存按钮了,所以下边这个地方用户点击保存按钮,用户点击保存按钮,保存按钮用户点击保存按钮,那一点保存按钮大家发生什么事,输入一点保存按钮发生什么事。对,是不是要向后台发请求了,对,为什么发请求?因为我们要把这个备注保存到系统里边了。那保存哪,其实就保存数据库是吧,数据库在后台的,所以必须发到后台了,所以我们要向后台发一个请求,那后台要提供CTRL了,所以后台必须设计一个controller,那这个CR大家想想是是什么新创建controller,还是在原来controller基础上加操法?
29:11
对,那还是看看咱们什么上次说的那个,以前给大家说那原则说这个ctrller,看看它处理资源路径在看,如果这个资源路径他独立占一个资源目录,那一个资源目录对应一个control就行了,那说他出现的资源路径,他出现的资源是谁啊。响应信息回来之后,是不是还是回到这个页面上边,那这个页面是那个detail,那个JSP明细,那个明细页面在哪个资源目录里边的,对在activity里边,那按理说我们说一个资源目录对应一个camera,还是在我们以前activity camera加方法就行啊,那大家再一打开,你看这个CTRLL啊,这个CTRL我们已经写过很多代码,这多少行了,对几百行了是吧?那如果说大家这个CTRL,我们这个页面上还有要添加、修改、删除,还有几个CTRL要写的,如果都写到这个CTRL里边,是不是它更大更长了,所以这个类太复杂了,所以我们这个地方转到这样,按理说应按照我们以前教你应该在这边加分了,但是如果一个类太长了,以后维护也不好维护了,你说一个类的话,几好几百行了,甚至都上千行了,这个类以后维护的不好维护了,知道吧,你要想找哪一个方法,以后改造的时候你很难找了,你知道吧,所以呢,一般来讲呢,不。
30:29
不会这样一个类太长了,所以我这个地方准备这在这个地方它是处理跟市场合同备注相关的这些的,我请求了,我准备再创建一个。再创建一个controller,然后呢,在controll里边专门处理跟备注相关的这些请求的control都写到这个controll知道吧,那你说这样就不符合咱们以前那个原则了,那我们说的原则的话,就是为了知写出来代码更好维护,更整洁,知吧,那我说那这个时候呢,如果如果只是按照那个原则的话,你写的反而代码反而不好是吗?不好维护了,所以原则的话,它不是语法是吧,怎么这么代码好整洁,好好维护,我们怎么来做,所以说呢,这个地方呢,我们就准备这不准备,那么在这个群Le里边加方法,就新创建一个品Le,以后跟市场活动备注相关的品种都交给这个品种处理,这样一个品多类不至于太长了。
31:26
太好了,知道吧,所以我们就这样知道,就这样好,那你说老师以后我们我们开发的时候,你们开发的时候也是这样。一般情况下都是一个资源目录对应一个controltelller,但是如果这个controltrl太长的话,又换表操作了,你可以再换一个群窟,再建一个群窟了,知道吗?太长也不太好知道知道,那你说要是多长算长?你把最好别让超过500方是吧,500方的开通,那我们这个地方如果超过500方,如果咱们没超没超过500,这还不到400方,你要如果把这几个也创建好了,就超过500毫啊,所以这是当然我跟你说,你说老师我就不创建CTRLL行不行,我就在原来CTRL就是加方法行不行啊,当然也行了,它规则它不是语法,它不是语法。
32:17
但按照咱们以前这是这这那啊,在公司里边开发的习惯,像这种情况我们就换一个片出来,但你不换也行,不换也行,我们说这样好,这时候我们要这样,所以这个地方我准备再给他新加一个controller角,是啊,我们备注的controller,那我再加一个艾K叫remark,然后呢C这样,然后呢,这个地方这个地方叫controller,然后呢,这个地方在这里边加扫码,跟市场活动备注相关的请求都交给这个CTRL来处理,一会儿我在这边加个号码干什么来处理添加备注的这个请求,在这里边加一个叫添加的请求或者叫保存的请求吧,保存添加了市场工的备注或者叫添加请求吧,添加请求知道吧,那大家想想这个请求是同步的还是异国的?
33:12
对他一点保存按钮响应回来之后,是不是不跳转页面,还是在这个页面异步请求,那我们这个地方来个异步请求,那大家想一想异步请求需要提高什么参数。加对首先第一个是吧,就是那个备注内容是不是得添加,但除了只有他行不行,也不行往备注表添加,大家所有的备注都加到备注表里边,你这个市场活动备注添加备注里边,另一个市场活备注是不是也往那个备注表表添加,那说你添加这个备注属于哪个市场活动呢?是不是得把这个市场活动ID放到后台,对,还得把市场活动ID发,所以我们这个段把市场活动ID叫艾克配让ID。即时大家是不是只有这俩参数就够了,够了就往备注本添加了。
34:04
我添加发表一个意见,这个意见是对哪一个市场活动的意见发表的,所以这俩参数就够了,后台把这两参数发到后台里,这个什么接收到,然后保存着数据库里就行了,知道这是我们这个分析的这个思路知吗?想的时候这个脑子就应该这么想,你知道吧,好这样的话呢,我们就要给发过来这个请求,那CTRL接收到请之三个职责,第一个接收请求有参数,获取参数,那这个地方来获取参数啊,那定义形态获取参数就行么?那参数这两个参数,其实除了这两参数往表里边加记录,是不是还有什么添加记录是不是还有什。创建时间,创建表啊,对这些参数,甚至还有一个创修改标记,都得传给service层,传给we层,往备注表表添加,那你说老师你怎么知道这些,我们设计数据库的时候,我们肯定已经设计好了,因为数据库表有这些字段,我们添加数去就应该给他们传过去值,这样他都能添加上啊,所以大家根据我们前面这种分析的话,数据库有这些字段我必须有,有,那都是在CTR当中封装好,然后封装好之后呢,传给消费这种传统。
35:16
那由于什么,除了这俩还有修什么,创建时间,创建者还有修改标记,那又再加上这几个参数,总共五个参数,参数太多,最好封装一下,所以我们这个地方封装参数,知道这些都是有原因的,知道吧,那封装参数大家我们说我们常用的封装成外部或者分成实体对象,这个地方分成什么?对这些参数都是属于市场无能备注的实体对象吗?为什么?因为都是属于那个表,那都是属于那个表里边字段嘛,表里和字段对应实际对象。所以都是属于谁的对象的,而且这些参数传给传给service层,传给web层,传给serve语句有都就是作为写数据的添加数据嘛,所以这个时候像这种情况下封装成实体类对象,实体类对象什么样的对象,就是市场上备注的税务对象这一个remark对象。
36:12
好,这是我们这样,那这样的话,封装好之后,CTRL第一个指头就处理好了,接收请求,参数拿到也封装好了,下边第二个指头,第二则处理业务,对我们而言就处理数据了,处理什么数据就是把备注这里边数据添加到保存备保存了备注表里边,那说他什么处理业务,他自己不处理,掉service掉service,那掉service那什么我们要设计一个service,这个service是新框架service还是在以前service费的基础上加方法。对,因为他要操作备注表了,那么在那个什么备注新创建那个市场活动备注的service里加方,就备注的service咱们好像已经写过了,在这个加方法就行了,所以我这个地方来一个调试啊,我们备注的service叫remark remark service,因为我们的service层,Map层和实体类层这些层我们设计的原则就是访问一张表,对应一个数据类,对应map接口,对应映射文件,对应一个service,甚至对应一个control,知道吗?
37:17
那我们这个地方要操作市场活动备注表了,要往备注表里边加记录了,所以他要调市场活动备注到操知,然后呢,在这里边加方法就行了,加什么样的方法,建明之引,那我这个地方来个创建呢,那就是废物,这个保存呢,废物创建呢,创建什么艾五马克视老王的备注,那它是个方法,加个小括号,小括号是方法的标志,然后在小括号里边传个参数,这个参数就是一个实体的对象,已经封装好了,那我这个地方来一个remark实体对象,这样的话,再看我们说这个service层也就设计好了,Service层设计了,那怎么说调到service,那service它就访问数据库,把这个备注表里边记录,把这个备注的记录保存到备注表里边就行了,那它不能直接访问出去,它要调Apple。
38:09
调谁的调示啊,我们备注到map了,所以我们这个地方来I叫remark map知道吗?然后呢,这个地方它mapper,然后在这个mapper里边加一个方法,这个方法也是保存创建的社的备注,知道吧,然后呢,这个方法名我就建明之一了,叫insert,叫iiv,然后呢,Remark方法小括号这里面传播参数,这个参数肯定要用那个实题类对象了。那么这个mapper就可以访问数据库是,然后呢执行circleq句来保存创建的市场中的备注就行了,所以这个地方呢,执行SQL语句,然后呢保存创建的创建的,然后呢市场活动备注知道吧,然后呢执行完了之后,把执行的结果返回到前台就行了。
39:00
就返回往回返就行了,返回给谁,谁调的返回谁service调map,那map的结果返回service保存的service局,那返回值影响记录条数,然后把影响记录条数就往后返,返回给CTRL了是吧?这时候我们这样,那这样的话,CTRL就拿到这个影响结构条,拿到影响结构条之后,CTRLL第二个职责就完成了,处理业务数据,该处理的都处理好了,下边第三个职责根据处理结果返回响应信息,所以我们这种根据处理结果,根据处理结果,然后呢,生成响应信息,响应信息看看成功了还是失败了是吧。成功了告诉前台,成功了失败了知道吗?失败知道吧,成功了告诉前,成功了失败了告诉前台,失败了知道吗?然后把这个响应信息访问的前台这个地方来个响应,这个东西还个响应,那大家想一想,这个响应信息是个什么样的信息?
40:04
对数据,对写代码的,写代码之前你应该设计好,那能想好,那看是首先写,首先从格式上来讲,看看前台发请求,前台是异步请求,阿贾格斯发的响应信息给到阿贾克斯,阿贾克斯能接入是不是一定是阶层了,对,一定是个杰森轴串。那阶层自符串里边包含什么,谁来决定呢?看看前台返回的前台时,前台需要什么?你给他返回什么?前台需要,你不给他返回,前台显示不了,前台不需要你返回也该返回,那就看前台需要什么,前台需要什么,就说你说前台需要什么,需求说了算,需求什么需求说了,如果成功了一点,保存成功了,把它清了,这个好办,不需要数据。然后呢,主要是这个地方刷新这个列表刷新的是怎么刷新,根据我们分析的这个地方动态的拼出来一条市场。
41:03
那拼的时候,你看你得你得需要知道什么。对,知道什么我要拼,刚刚添加这一条,我要拼出,你看人家显示的时候一条的时候得需要什么数据需要什么,大家鼠标放上去这个地方是不是得需要创建者的名字,然后呢,这个得需要什么。对,内容这个得需要市场们的名字知道,然后这个是不是得需要那个什么创建时间是不知道哥,这个得需要创建者的名字,然后后边这俩按钮是不是得需要这个备注的内容,这个备注的ID啊备注ID,所以你得把这些信息返回到前面,那这些信息在哪呢?是不是都在这个对象里边了,对,把这个对象返回。因为这些这些数据都放到这个对象里边了。这这些都是,哎,你说老师有一些数据没没没有哪个数据对象里边没有。对,市场活动名字是不是没有,市场活动名字没有。
42:01
这个页面上有吗?对,页面已经有了哪一个就是这个名字吗?这没跳转页面,在这个页面上有,是不是我在这拼的时候,我就可以直接获取这个名字了,对直接获取名字了知道吗?好,还有什么数据没有的。差不多是不是都有了,对差不多有了,都有了,其实还有一个没有了,没有一会儿我写的时候再说,嗯,总之大家看这个拼这条记录的时候,得需要这个对象封装好的这个对象信息,所以如果创建成功了,不但要告诉前台成功了,还得把这个对象返回,知道吗?再一个如果创建失败了呢。那前台说只需要提示信息,这不清空,这个地方也不刷新,也不拼了啊,所以说大家总的而言,前台只需要知道什么呢?需要知道这一数据第一个成功还是失败了,所以我们返回成功或失败的一个标记,一成零失败,如果成功了还得返回这个对象,把这个对象也放到什么接线字符串里边访问,那这个对象的名我就叫remark了,这个对象的值是什么呢?
43:12
对,还是个实体对象,实体对象在阶层综符号里边还是个大括号,大括号里边是什么?就是里边是刚刚封装的这个对象呢,它的里边的各个属性名额属性就是属性名属,所以那这里边有备注的ID,还有备注的note content这些,当然还有一些别的属性,还有些别的属性这个地方,那这个地方知道吗?还有些别的属性。我就我就不多不不多写不多写出来了代替了知道吧,这是成功了,失败了呢,还得返回提示信息,把这个message访问知道吗?这是成功或失败,总的返回就是返回这么一个阶就行了。然后呢,把这个接线字符串放回到前边。
44:02
那前台拿到这个接线字符串之后,就是在阿贾克斯亦不请求那个回调函数里面拿到的塞,后边那个函数拿到之后呢,那这个地方来一个叫解析,解析解森,让他渲转页面,解析杰森旋转页面就行。那这样的话,那我们这个流程就设计好了,怎么解析尖子渲染页面,那我们这个再看看零还是一,那如果是一把它清空了,下边拼一条追加到这,如果是零的话,提示信息,然后这个不清空,这个地方就不用刷了。大概就这好,这样我们这个流程我们就设计好了,就这个流程添加备注这么一个流程,好大家我们把流程设计好之后,下边就编码实现了,你只要流程很清晰了,那下边代码就很好写了。所以代码写代码吧,代码四层,代码从底层这写在市场活动备注这个map里边加一个方法叫保存创建的市场活动备注,这这都是水稻渠成内容,这你只要设计好了,所以那就来呗,这个地方来在这个备注的备注的map里边加个方法,保存添加的上方备注在这边添加加就行了。
45:19
然后呢,加吧,那这个地方来个方位值都设计好的影响记录条数是这样的方法名来一个insert,叫activity remark,知道吧,然后呢,在这里边提供一个实体类对象,这都是设计好的activity remark activity remark对象,这个地方来一个remark,然后呢,这个地方来写个注释,这个叫保存创建的市场活动,备注市场活动注是这。好方法定义好了,下边来加一个搜索句,这个地方来加个搜索句来吧,添加这个搜索句in for来一个它ID要和放网名一样,拷过来一个放网名CTRLC拷贝,然后呢,放到我们这里边这种了,然后呢,这个地方来个参数叫什么叫permeter t参数什么类型的。
46:23
是不是实体类类型,对实体类类考一个实体类就行了。考一个试题类的,然后呢,这个地方来一个试题类的返回值自动返回银行,技术投入不用管了,在这边直接写错就行了,其实大概这些按理说都有提示啊,我们现在说第一个项目先不给大家用提示吧,你就用了一个一个想要什么数据你自己去找去知吧,按理说这都是有提示,按一个那种快捷键直接提示就出来了。所以往外第一个项目成熟长,下一个项目大家可能做的就快了,做互联网项目的时候知道吗?啊,现在大家先敲敲熟练,这语法的掌握熟练,然后呢,这个地方写错数句,先加到错数句来一个叫in色音符,往这个什么对,往哪个标注边添加,备注表里添加,往哪些字段里边添加。
47:18
那我们说添加数据,那肯定王者耀所有字段添的,刚添加的除了艾time那俩字段没有一定是空空数据,所以其他组挡都有,那其他阻挡呢,看把这阻挡门都好过来,就这个阻挡门。这我就不一个一个写这字段了,我就直接从这个搜语片段里边拷了拷它放到咱们这个地方,放到这里边知道吗?刚添加的数据I by at time这两个一定是空的,因为你刚刚创建的数据没有人修改过,更没有修改时间了,知吗?好,这样的话我们就可以了,可以完了之后大家看下边什么这些字段的值VALUE6,然后呢,这些字段值大家都从哪取?
48:01
实体类属性里边取是不是这样的,好,那实那取吧,各种到了时候大伙把那些属性名都写到这去。那说这些属性比较多,所以我这不一个一个写,然后呢,在这儿替换呢。在这替换这些都是没有意义的代码,你写字多了,除了耽误时间知道吧,然后呢,这个地方呢,他你说这老师这是不是也有个熟练程度,写字段名没有啥熟练程度是吧,你以后你到工作过程程,不同的表的字段名不一样,这个不用不用那个是吧,考虑熟练程度了,这字段好像不需要,然后呢,这个地方我们给大家来简单提换一下,提换一下把里边的所有的。叫什么逗号都替换成什么?这个是吧。这个不用带obj了是吧,不用带obj了,替换成它就行了,替换然后呢,CTRLCCTRLC,然后呢,这个地方CTRLV贴到这就行,那我们说由于这里边都是取的嘛,实体类的属性。
49:06
那实体属性这些什么,虽然跟字段跟字段相对应,但是他们命名方式不一样,字段命名方式多个单词对用下划线给它实际属性对拖峰命令,那这也都改成驼峰名,然后呢,这个地方来一个叫号,然这个地方叫改成托峰名额,这个是可碳,这个叫note,看这样的话再用这个so句就行了。保存添加的是保存添加的市场活动备注。好,这样的话义行了句相了这个map就行了,Map主要是写句的。好,买层写完了,下边就要写层了,在市场活动的消费者里边加方了。保存创建的市场,我动备注,所以我们在这个备注service这加一方法,这个方也都设计好了,范围值,影行记录条数,方法名,来个save cur,然后呢,Remark,然后呢在这里边创造参数,这个参数就是一个实体类,对象叫activity,然后呢,Remark activity remark,然后呢,Remark,方法定好了,在它实现类里边也得加这个方法,那它的时间类就这个这个地方在这里边也得加一个方法,那这个方法按照out insert in method。
50:34
然后呢,大家看service层方法的实现,那肯定调map增调这个map调过来。这样哪一话,咱们刚刚写的内容叫insert activity re,把这个re对象成过了,这样的话,这个service层也写完了啊。
我来说两句