00:00
刚刚啊,我们已经实现了这个修改图书的第一步啊,就比如说我点这个时间简史,我点击修改啊,它这边就会根据你传过来的ID获取这个指定的图书信息,保存到liquid当中,并且转发到book edit,那么我们在这边就可以回选这个修改信息了啊,那么接下来我们要干嘛?大家注意看一下修改图书啊,大致分为两个步骤。咱们先说明一下,修改图书分为两个步骤,第一就是什么呢?把修改的图书信息回显到。表单项中是吧,这第一步第二干什么事情呢?嗯,那么提交修改后后的数据给服务器保存修改,你得让它保存起来啊。你不能光修改是吧,好,那这个时候大家去看,我们来实现一下第二步,我们来实现一下第二步,好,那这个时候大家注意看啊。
01:08
那么我们这边还要干嘛呀,还要有一个方法用来接收他这个提交啊。就比如说再写个方法啊,Public叫update这些子修改了好好了,哎,那么我们说这个方法就是处理修改图书。的操作啊,或者说是保存修改图书的操作是吧?哎,那么这边大概要干什么呢。我们来想一想。首先,第一步。然后求第一步啊,那么获取请求的参数。封装成为成为book对象啊,这第一步了,第二呢,调用book service.update book是吧,你把这个修改的图书给人放进来呀,然后呢,修改图书,第三这时候大家注意看,你的业务其实已经完成了。
02:19
已经修改好了嘛,那么修改好了以后怎么办,你要跳回这个页面呢,图书列表页面呢,然后让用户就比如说。你要回到这边,让用户看到你刚刚改那条记录,诶信息改了,你要列出来是吧,所以呢,还需要干嘛,还需要从定向回图书列表管理页面。那还需要重对象回来。啊,还需要从立项出来,那么这个地址啊是多少呢?斜杠book,这就其实工程名了哈,你要是其他的就是就其他了哈,我就写工程名,然后当manage下的book问号action等于list就好了,哎,这就是update这个方法里面它要干的事情,那么我们把这个拿过来,放到我们的这个update里面去实现一下就完事了啊。
03:10
好,把这个拿过来。好,那么大家注意看一下哈,也就是说我们希望注意看把这个请求。提交。走,给谁呀,给他。给他来处理,那么他最后呢?他这个地方最后还得干嘛,还得再回来。哎,刷新页面中的数据是吧?呃,我写在这里。或者是写上面吧,刷新。页面数据就这样子。啊,刷新页面的数据好。OK,好了,这就是整个修改图书的步骤,但是有个什么问题呢?
04:06
有个什么问题呢?大家注意看一下哈。这个book editor咱们原来已经用来干嘛了,用来实现过添加了。而现在你要再次提交的话,你想想看到这个表单哈,这个表单里面已经有了一个隐藏域,他已经决定了要做添加操作了,但是你现在呢,又让他做修改操作,也就是说这个值。他还不能是固定的。他还不能是ADD。就这么简单啊,还有可变才行,那怎么办?那问题就来了啊,咱们说现在咱们遇到的问题。好,遇到的问题是,哎,不可下划线edit点接DP页面,既要做添加操作,又要做修改操作。
05:02
哎,又要做修改操作,那么注意了,而到底是添加还是修改是由一个隐藏域来决定的。来决定的就是谁呀,就是它也就是说这个地方的值它,诶这个地方的值它必须要可变才行。这地方是它有可变态性啊,这咱们了解一下好,那怎么办怎么办呢。问题就来了,如何动态?修改隐藏域。就这个。如何动态的修改这个隐藏域?哎,让它的值。诶,让它的值既可以实现添加,又可以实现修改操作,这就是咱们现在最大的问题了。
06:06
是吧,就写的某某某啊,那怎么办呢?来吧,咱们说一下解决的方案,怎么解决这个问题。啊,怎么解决这个问题?好,咱们来说一下解决方案一。解决方案一啊。怎么办呢?大家看一下,可以在请求发起时。啊,附带。是吧,附带上什么呢,这个当前要操作的。张家餐做的那个什么呢?呃,值,并注入到隐藏域中。这个话大家可能没听懂,是啥意思,啥意思呢?就是你请求发起的时候啊,把这个当前的操作带过去,交给这个隐藏域里面,啥意思,注意看呢哈,我演示一下,就比如说你请求发起从哪发起,都是从book edit,都是从什么这个请求列表页面,那么我们可以在这里面请看哈,在添加这个地方,我给它加一个参数,诶,啊叫做什么呢?Method是ad是吧,你当前要做添加的操作,而修改里面你就跟人家说你也要做修改的操作,这样子你不就有了一个参数吗?
07:28
啊,只有个参数,那这个参数怎么办?你就可以在这边注意啊,在这个地方给人家输出p.method输出就好了。来我给你看一下啊呃,咱们刷新一下啊,图书管理呃,咱们点击添加图书,请看上面是不是有这个参数啊,那上面有参数,这里不就可以输出ad了吗?你看见吗。啊,看这个地方B不就是我们讲过的E隐含对象当中那11个隐含对象中的一个吗?这个就是专门用来输入参数的啊,那如果你是修改呢,修改也一样,你随便点一个修改。
08:11
啊,我这修改当点了是吧。发过去大家看一下,这这是不是也有个update呀,那这不是参数嘛,参数的话你看这边输出。你看见了吗?这个时候这个值就是动态发生变化的,这就是第一种方案。第一种方案。哎,咱们了解一下好。那这一种方案二啊,啊,如果说不用这种方案,那你怎么办呢。其实大家注意方案其实有好多种,只要你能实现就行啊,只要你能实现不影响性能啊,大基本上都可以都可以的啊,那第二种方案就是我们先把第一种方案去掉啊。呃,我在这边把这个给他删了,添加也给他删了。
09:02
啊行好,我们看看第二种方案是什么,大家仔细观察一个事情,观察什么呀,来注意看哈,我点击添加的时候,上面是不是没参数。对吧?哎,那如果说我点击修改呢。上面是不是就会有参数。它就会有个ID的参数对吧,也就是说修改的时候它有ID这个参数啊,添加的时候呢,没有,那么我们就可以通过判断有没有这个ID参数,来决定当前这个表单它到底是做添加操作还是修改操作。对吧,怎么判断呢?来我看你怎么写啊,呃,我们到book edit里面。在这边来,咱们说是是否是添加操作,哎,由什么决定啊,请看MT,呃,不是PID决定。
10:01
你注意看这啥意思啊,如果空你判断ID值是不是空,如果空就什么空,就是没有ID这个参数,没有ID这个参数,那么它就是添加。有ID这个参数,它就是修改。请看啊。来我点击添加它这里是不是说是真,你是不是添加操作说我是你看到了吗?我是,那如果说我点了修改呢。有了ID以后,这里是for,看见吗?他说我不是添加for。能理解吗?那既然这里都能得到这个答案了,那简单了吗?怎么个简单法?注意看我在这里问号,如果你为真,诶,你给我输出addd,否则你给我输出update,这不就可以了吗?是吧,来请看下效果哈,我点修改走,修改是不是update的这个值。是吧,那我点添加呢。添加添添加是不是ad这个值。
11:00
诶,你看这不就可以了吗?那我们只需要把这个东西复制往这一放就完事了嘛。能理解了吧,哎,这是方案二。啊,咱们说方案二啊,方案二干嘛,可以通过判断当前请求中是否包含有ID参数,如果有说明是添啊说明是修改操作,如果没有说明是添加操作,就这样就完了嘛,是吧?诶怎么做呢?用这个去判断一下就完了。这一判断就完了,好,这是方案二,当然除了这种方案呢,其实还有其他的方案。还有其他的方案,那么大家看一下方案三是什么样子,哎,我稍微换一下啊,这颜色都一样的。
12:01
稍等啊。方案二,呃,方案二咱们换个色是吧,好,那咱们看看方案三。解决方案三是什么样子呢?大家注意看一下,解决方案三是什么?咱们也不判断ID了。是吧,也要判断ID了,那我们咋咋做呀。咋做,大家注意看啊,当我们想一件事情。想一件事情,我们点击添加图书的时候,人家是不是直接来到这个JSP页面。对吧。诶,但是呢,我们修改呢,我们修改的话,它会经过,然后去查询有没有图书是吧,那你看那个代码。诶,你看它会调用这个方法,然后呢,查询一个图书之后放到liquid域当中,也就是说注意了,在这个页面当中,我们可以判断一下,如果录音库域当中有一个。
13:14
修改的图书对象的话,那么说明他就是修改他做。如果旅客的域当中没有一个图书对象的话,说明它是添加操作,一样的一样的,那怎么做呀,怎么写这个东西啊,你看啊,判断这个地方,咱们说request you看见了吗?Book,如果说你没有,那是添加,你有是修改,那这种写法其实也可以。啊也可以,这就是方案三来一样可以啊,比如说我修改。看见了吗?我点修改它修改哈,那我点击添加呢。走你它是不是添加呀,哎,这种方案也行啊,也行,三种方案大家各选一种啊,能用就行,这没有什么限制,好,那咱们说方案三可以通过判断RA cos域中是否包含有,是否包含有什么呢?修改的图书信息对象,如果没有说明是添加操作,如果有说明是修改操作。
14:25
就这么简单。啊,就这么简单,好这个呀,大家了解一下,就是咱们的问题啊,咱们只要按照这个操作去写,那么这个修改这个book edit,它就两个操作的问题,咱们就迎刃而解了啊,就迎刃而解了,好吧,那咱们就随便选择一种方案啊都可以的,咱们这个方案就不改了,就这里就行了,那这个咱们就删了啊好,现在大家请看啊,它既能够做添加又能够做修改了,那么我们已经可以提交到这边来了,那我们就把这个update也实现一下。
15:00
呃,Update的方法在哪呀?啊,在这里面是吧,咱把这个写一下哈,Book别打错包啊,Book等于web.copy perter是吧?request.get parater map new book好,这个呢,就获取请求参数,并且呢,封装成为一个book对象,那修改呗,呃,Book service.update book。是吧,呃,掉进来,然后啊,呃,从定向到图书列表管理页面,呃,那么我们提出这个就完了,对吧,前面已经写过这个代码了,我就不再重复了啊,不再重复了。把它拿过来就能用好,呃,至此呢,我们打到这个断点,看看这个修改有没有啥问题,重重新部署一下啊。
16:00
它在它的编译啊,它的编译。看这个提示啊,只要display对吧,Successful就定义成功了啊,部署成功了来吧,咱们听一下,部署成功了,咱们试试哈,来咱们测下这个修改,比如说呃,时间简史咱们修改一下,走是吧,时间简史啊呃,霍金啊是吧?哎,这个时候咱们提交,我们看看它会不会提交到R方法里面来。提交大家看这是不是进来了,说明他可以做修改操作了,诶修改操作之后走看看那个数据过来没有啊。你看这个这是不出来了,这就好了嘛,哎,那么这个时候啊,我们再往下走一行走,我们看改了没有哈。诶。咋没改啊?有同学看出来问题没有?有人看到问题没有,为啥没改?
17:00
大家大家看一下哈,我直接告诉你问题哈,我把鼠标移上来。你看一下这里面这个书名有值,作者有值,价格销量库存有值,对吧,路径也有,唯独他没值,发现了吗?而我们的修改操作需要这个ID来,你请看一下。我们。那我们找到这个,呃里面。哪呢?哪呀,呃,我们找到不跌。在这边找就行了。Book跌呢?那么大家看看这个修改的语句是怎么做的呀,修改的语句更新它是不是根据ID来找的,那你ID都没有值,你让他更新哪条记录啊,能理解了吧?哦,少了个ID,也就是说大家看这个表单里面还要给人家发过来一个ID,那这个ID就是你要修改的图出ID,那怎么办?来在这边再加一个。
18:04
啊叫做什么呢?ID值,呃,把这个值输出。requestcob.id完事了,这样就行了。啊,这样就可以了,好。嗯,来吧。咱把它,呃不对,弄就行了。那么它重新部署一下啊,让它生效啊。重新部署啊,稍等一下。啊,他还在等是吧,咱们断点停在那里,他他过不了。好了,重新部署成功了啊,咱们来看一下,你看这个没改成吧,这次就可以了。咱们看看这个ID有了没有。ID有了吧,ID有就行了,来时间截止啊,啊后勤啊,来点击提交,这时候往下走看这里面。
19:01
是不是都有值了,有值了以后你这更新就生效了啊走你。大家看这边。走。是不是改了,哎,就改了啊好,最后呢,你在统计项中突出列表页面这个数据就刷新了,来走你。请看下面这个是不是修改过来了,这个就是修改图书。
我来说两句