00:00
这个前端给这个你需要操作的这个元素啊起名字,我们以ID的形式来给操作的元素命名啊,这是以后我们开发经常用的一种这个手段,OK吧,这种小技巧必须要学会,OK吧,好,接下来我们来做一个添加吧,这个记录快快没了啊,做一个添加啊,这个添加很明显的是什么呢?我在这里边输入内容,然后点击保存。咱们是不是就相当于是动态的添一个div啊,你刚才删除是删一个div,咱们现在应该是添一个div,是这样吗?我为什么说是填一个DNA呢?往常我们不都是做完保存就相当于做完添加之后,咱们不应该刷新这个列表吗?咱们这回是不能耍了。还能刷列表啊。这跟我们刚才删除是不是一样的。不能刷了吧,如果这回再刷的话,咱们掉的是不是还是那个刷列表,是还是那个b before方法。
01:01
你在执行完保存,你要刷列表,这条记录是不是保存上了,然后我再查一个这个表中的记录是不是跟他是不是产生重复了,对不对,好所以说啊,我们现在啊选择的是啊选择的是填完记录之后,我们来一个div,那么这个div呢,追加到这个文本域的这个上方是不是就行了。找到这个保存按钮啊,找一下。保存。来个ID啊,来个savemark。B tcv remark b TN啊。咱们来为这个保存按钮来绑个事件啊。好,咱们来执行什么操作呢?执行的是这个啊,备注的添加操作啊。
02:10
点function好填备注啊,那就相当于什么,同学们,咱们是不是唯一的一条有用的信息,是不是就是这个note content这个文本域里边填的信息,你看一看啊,对于备注这张表啊,唯一值得你去关注的信息是不是就是它呀?ID是不是在后台?创建人创建时间是不是在后台修改修改时间呢?没有,咱们是添添甲对不对,好ID的flag,咱们说给负个值是零啊,因为他没改过对不对,但是大家注意啊,除此之外,咱们还得提供一个什么呢。Activity ID是不是得提供一个外键呢?对吧?好,所以说一会咱们需要传递的参数,除了这个添加备注这个文本域中的这个信息之外,是不是你还得给人家提供一个什么呀,这个外线呢,对不对,好啊这个。
03:17
咱们还是啊,来个阿贾克斯啊。好,这回呢,咱们来个叫save。Mark啊?贝塔,这个刚才我们已经说好了。得填这个文本域中的信息,对不对,找到文本域啊,同学们,文本域是在这呢,Text area是它吧,添加备注啊,添加备注好,这个ID已经给你起好名了,是不是叫remark呀?咱们直接来用就行了啊,这个名字不要乱改啊,因为这个文本它是有这个动画效果的,看到没。
04:00
你给他改个名字,是不是这个效果他就不出了。能理解老师意思不?我我我我随便给改个名能行吗?看看啊。是不是下边的按钮都没有了?除非你改完它之后,将我们上边的那些操作动画的全改了,是这样吗?那既然前端给我们起好名字,人家就叫什么mark对不对啊,咱们就要用这个名字了啊,这回这就有了,对吧。Mark。咱们传一个备注信息啊,这个备注信息叫做note。对吧。来一个到点吹。就叫mark对吧。点VL,那这个老师解释过了啊,为什么text area它是一个标签,对咱们还是要用VL呢,咱们是不是拿它当做表单元素来处理的。
05:02
对吧?好,除此之外咱们还需要一个activity t,对吧。好,这就好说了啊,咱们来一个。什么A点?ID这个有问题吗?来反映反映啊,我们现在要在这张表中要新添一条记录,对不对,好用我们传的参数一个是它,那大家注意啊,这个activity ID在后台是不是升不了啊。在后台其实都能升谁呢?来看看能升ID吧,能升create time create by这些是不都能升啊,这个东西咱们给负个零对不对,是不是这个activity t ID后台哪知道你这个学生是哪个班级呢,对不对?所以说你得不是得把这个班级编号给他,给他发过去啊,对吧?好在我们这个啊,医疗表达式当中啊,直接取这个a.ID就行了,好X填ad,好我们做添加来一个。OK吧,好,我们来看。
06:05
首先咱们这个data啊,肯定得有一个success对不对。S怎么来一个true或者是?False。如果得塔点sus。Else。Alert。添加备注失败啊,OK吧,如果咱添加成功了呢。添加。成功之后咱们是不是。你在什么?这个文本语。
07:00
上方新增一个什么呀,一个div啊是这样吧,好,咱们来一个VR。HTMLOK吧,好,来看看啊,同学们,这个模板是不是在这呢?是它吧,哎,给他转过来。注意看了啊,给它粘过来,然后呢,咱们在下边是不是before这些东西是不是都是一样的before一下,只不过啊跟下边比起来,我现在是填一个div,下边展现列表是什么呢?遍历多个div,是这样吗?好,我先展现一个div就行,那展现这一个div,我们现在来看一看。都给他们什么信息?也就是说这里边儿你是不是你你得对这个div里边得填填内容啊,填note content对不对,好,你还得填这个市场活动名称,还得填这个他一些其他的这个基本信息,是这样吗?咋填呢。
08:13
有一些信息咱们是不是直接从这里边取出就行啊,对不对,但是大家注意啊,我们现在拿到的这个参数,拿这个参数的目的,它的这个作用是不是就是为了给后台传参数,让后台做添加呀,如果你下边再用的话,是不是就比较乱了。OK吧,所以说大家注意啊。对于我们这个回调函数来讲的话,这些内容应该都是从哪儿给我发过来,是不是从这个data后台给我响应回来的数据啊。能理解吧,所以说啊,我们现在来看一看,都应该给这个前端都想要什么呢?咱们是不是得响应这个note。Content对不对?我还是那句话啊,你用它也行,能理解吧,你用它也行啊,但是尽量不要用啊,从后台给我传OK吧,Note content好,除了它之外还得传谁?同学们看看这个ID是不是也得传呢?
09:08
还得传ID,然后还得传谁。传传传传传,是不是还得传这些东西啊,哎,但是这俩东西咱们是不是不用判断了,同学们。还用判断不用了吧,咱们是不是新增的一条记录百分百是什么呢?创建时间由创建人吧,对不对?好,所以说这里边儿这些信息啊,还是比较多呢,你一个一个传是不是会很麻烦,所以说和我们以前一样,给它封装到对象当中,如果说有一个市场活动对象叫A,那么我市场活动备注对象,我给它定义为AR activity remark可以吧,好,这是一个市场活动。备注的对象行吧,可以吧,同学们,这条备注它同时也是什么呢?同时也是我们刚刚在后台新添的这条信息,这条备注是这样吗?只不过填完之后把他的信息再重新打回到页面上,我们还得需要展现呢,是这样吗?好,行,那这个东西咱们来看看啊,既然咱选择叫AR了,那这里边咱们这个N呢,是不是得改一改了。
10:19
叫什么呢?直接AR吗?贝塔点a.ID对吧,好把这个NN呢,咱们都给它替换掉啊。N替换掉对吧,嗯,这个也是啊,都给它替换掉。这个咱就别判断了。Time留一个这个叫什么。是吧,这个去道的时候小心一点就比较绕嘴是吧。好,把这个N啊,咱们给改了。
11:01
贝塔点A对吧,行。行了,差不多了啊,接下来我们来处理一下这个后台啊,Mark。好,来执行啊,执行添加备注的这个操作,呃,需要从后台接收两个参数啊,一个是咱们这个note。Content对吧?request.get parameter。还有一个是叫。还记得吧,Activity ID对不对?
12:03
行,既然咱们要做的是添加操作啊,除了这俩信息之外,咱们这还得来个ID啊。用有用ID生一个行吧,还得来个什么修改人修改时间对不对。啊,这东西咱们还得粘一下是吧,给它改成什么at time。E和对吧。哎,不对不对不对,是是创建人创建时间对。对对对对。没错,我脑海里边反映的是这个餐,是这个啊,I flag,我一直在想它呢啊好,这里边应该是个什么。零,所以说我就觉得这个ID的flag这里边应该都是艾啊,它是创建人创建时间对吧,好看看还有没有别的,同学们想一想,没别的了吧。你看啊,123456,咱们看看这六个字段啊。
13:03
123。456是不是齐了,除了it time I buy咱不填,其他都填对吧?好把这六项信息啊,给它封装到一个remark对象中。六出来一个new activitymark,咱们来ar.that。先把最重要的信息ID填一下啊。That not content。Set,还有什么activity t?可白?Time。还有一个什么flag对吧。Edit flag OK啊好,我们接下来调这个业务舱啊。
14:03
As,咱们调一个save remark,把咱们这个AR给它传递进去,嗯,反一个布尔值表示的是这个填成功了还是失败了啊,OK吧。呃,值得注意的是什么呢?咱们这个service大家注意啊。啊,老师说给他命个名叫这个as,咱们要传递的是不是这个对象AR。啊,我也不知道为什么,很多同学习惯于什么呢,这里边儿直接就给我填了一个as。导致它添加失败是因为这个as和AR长得像吗?一遇到这好多同学不是一个两个啊。我指的是这个别的班的,OK吧,好多人直接把这个as传进来了,你传业务成对象干嘛?这应该是什么同学们?这应该是AROK吧,好,诶,有没有注意到同学们啊,我习惯于将业务层这个对象给它变成一个缩写的形式,看到没?然后我习惯于将倒层的对象变成什么呢?
15:09
接口名全称首字母小写对不对,为什么呢?因为在咱们的这个业务层,使用业务层的时候,一个控制器里边,你使用业务层,为了保证是同一套事物,咱们这个业务层对象肯定是一个。能理解吧,咱们不会创建多个业务层对象去共同服务于一个控制器的方法,能理解吧,所以说这一个对象咱们不会去混,不会去重复,OK吧,到时候我读这个as的时候,我也知道是啥OK吧,但是呢。业务层在调倒层的时候,它就不一样了,也就是说我们将来在使用业务层方法的时候,有可能会应用到倒层的多个多张表,会应用到多个倒层,OK吧,如果你在倒层用这种缩写的形式的话,你将来啊,咱们业务层如果业务逻辑非常长,用到表有很多,到时候你再读取信息的时候啊,我到时候我真用的哪张表我都不知道是这样吗?所以说啊,我以什么呢?建名之意的形式,我是不是一看到他X t do,我就知道我操作是哪张表啊?
16:13
市场活动表,我一看到这个do就知道我操作是备注表,我一看到它,我知道我操作的就是用户表,能理解吧?好,来savemark啊,这个一会儿再说,总之flag啊,咱们要拿到,除了flag之外,咱们还得给前端提供个什么。给前端提供一个flag,提供一个什么,这叫。是不是备注这个对象AR啊。为什么要给前端提供AR,为什么?是不是前端以后还得批那个div,还得展现信息呢,对不对,好所以说啊,一要反flag,二要反谁呢。AR是不是反两项信息啊,同时给前端反两项信息。
17:03
用map用VO都行,这种需求咱们是不是用map是不是就可以了。OK啊,来一个map string。咱们来一个map newhi map string。Object啊好,Map,咱们来个点put,首先咱们来S对吧,来一个。接下来咱们来个AR这个AR这个名字咱们是不是不能变了,前端是不是都已经用上了。A,人都用上了啊,然后将我们map中的这两组键值对,是不是应该解析成人家想要的这种接身串的形式?哎,还用工具呗,Jason,好,来一个obj啊,Response后边是。
18:03
Map OK吧,好,那接下来咱们来处理这个业务层啊。
我来说两句