00:00
现在呢,咱们还是回到这个后台啊,前面呢,我们已经把这个添加图书啊做好了,那接着呢,我们来看下这个删除。呃,删除怎么做,大家注意看,删除其实啊,就是点击删除的时候。他要把请求发给服务器,服务器收到之后处理完了以后啊,重新再刷新这个页面。让我们看到这条数据呀,被删掉了就可以了啊,那我们稍微整理一下这个流程。这边是客户端。浏览器啊,然后。这边是。服务器。啊,这边是服务器,服务器谁呢?就是那个。不可。
01:04
好了。OK,那么这边一行一行是吧,每行呢,这个删除。好。我们给他拿过来。复制一下。OK就好了,那么当用户啊,点击这个删除的时候。就点击这个删除的时候,诶,他发请求过来。那么这里面请求地址是什么呢?注意看一下哈,就是manager下的book问号action等于delete,哎,就表示这个删除了,那么删除的时候呢,你要告诉别人删除哪个书是吧,所以要把ID也发过来。
02:06
图书编号,图书编号,那么这边呢。来吧,我们看一下它要有一个方法来接收public v delete啊,一个功能,一个方法,这就是那个删除。就是那个删除好了,那么接着呢,我们说这里面大概干什么。获取请求的参数什么东西啊?ID图书编号吗?好,第二,调用book。Service。调用book service.delete。不可地删除图书三。
03:06
干什么事情呢?哎,接着再跳过来,重定向回图书列表管理页面,那么重定向的这个地址啊,斜杠book到many做book serve that问号action等于list好了啊,这个是咱们服务器里需要干的事情,好。我把这个拿过来啊。先放到哪啊。把这关了不可呢,哎,放到我们的delete里面来,这是服务器呢需要干的事情。好,然后这边。他怎么办?注意看啊,这边请求过来,那么这边再跳回来。
04:00
哎,总对象回来,哎路径呢,就是这个。我再敲一遍吧哈。重定向回图书列表管理页面斜杠book,然后manager。Book问号action等于list,然后干什么事情呢?刷新图书信息。刷新这个图书信息,看看是不是删除了,好那么我们按照这样的一个说明啊,来看一下。我们在这边。删除呢在这里。啊,那么这里是manage book问号action等于delete,并且ID等于book.id这地数改过来了,改过来之后啊,我们在服务器这边写一下。
05:06
破这点getter这里呢是ID。好接收一下啊这个参数,然后第二步。调用book service。点delete book by ID,你把ID放进来,但是有啥问题大家看一下,这个地方的ID是最不串类型,而下面的ID呢,要的是inte类型。所以中间呢,其实是需要一个类型转换的,那类型转换怎么办呢?in.health in ID。是吧,再转过来,再把这个I放进去啊,而且这个地方。看一下。
06:00
但还会抛异常。还会异常,所以啊,我们还要对它进行try catch。啊,这个操作。得这样干是吧,哎,得这么干好了,那每次转换的时候都会出现很长的这么一段代码,那其实我们可以干嘛,像这种转换这做法非常常见。我们把它写成工具类。到U里面web u里面简单这个方法。Public static。硬的。In。String,然后就string in啊,然后default value,好,那么这个时候咱们注意看一下,直接return啊,In into个点in in。
07:01
然后呢,Default value。TRY捕获一下,把这一条放大。好了,然后大家注意看一下哈,这个代码这里呢,就类型转换出来了,转到int了,那么转成功的话,它就会直接把这个值返回,如果转了失败呢,咱们把这个默认值返回。啊,默认执法。好,咱们这个是什么将字符串。转化成为int类型的数据,好了,那么我们就可以使用了。这个关了哈,Book select来,这个代码就不是这么写了,就变得简单很多,你看一行int ID等于web.getter ID啊,这个认值呢,咱们可以给零。
08:06
是吧,给个零好,那么这个时候咱们写到ID就有了吗?这不就可以了,好第三呢,就是你删除也删除了,业务也做完了,你要重新上一下啊。response.direct get pass,加上后面这个路径。OK,就从对象回去啊,又从那上回到这个图书列表。管理的页面,好,那么这时候啊,我们打上断点来debug测试一下哈,我就先停了,这是乱模式启动的。然后用第bug来测试一下。OK,我看他启动哈。有点慢,大家稍等一等。
09:04
诶,启动成功了啊,它会打开这个页面来了,后台图书管理。好,现在呢?呃,咱们先删除时间简史。删除谁呢?咱们就删除这个吧,啊把鼠标移上来。大家看一下左下角这个地方。它的ID值是多少呢?是23啊23,那么当我点击走。他过来了,我们看看这个ID值是多少。一。这个没取到。这个值多少啊,零,那说明零就出问题了,零就出问题了,好了,那我们看看控制台有没有打印错误啊。来看一下哈。嗯,小于最小值的范围。好了,我们再看看这个地方。ID等于23这样子哈,出了这个错误之后呢,他把这个默认值给返回了,我们这个时候需要进去里面看看他传的这个值到底对不对,我们再点一下,再重新来测试一次。
10:14
啊。这个先给他放过去啊,这技能放过去再回来再刷新一次啊,这应该还在。再点删除。啊,然后进来。再进来,这值是多少?23类,23INTAKE int,这是23,没有问题再走。A number for many,这有啥问题?我们看一下哈。Int它是23,看看这个debug。DEFAULT56。啊,这这个不应该放进来,看错了,大家注意看一下哈,他在in的时候这里呢,不应该放进来啊,放下来它是转换的进制就不对了来。
11:03
问题出在这里啊,这里不要放出来看好了,那找到问题之后咱们放过去啊,再类型转换一次就行了。来重新启动一下吧,让这个代码都生效一下好了,咱们知道问题了。等它启动啊,启动之后咱们再来看一下。诶,这启动怎么没有反应啊。先把这个停了啊。再来。稍等啊,等他重新启动一下。好,启动成功,它会打开这个页面,咱们来看一下它后台管理图书管理啊稍等,然后呢,咱们还是点击刚刚那个鼠标一上来它的ID值是23。
12:07
23,那我们点击走啊,这时候就没有啥问题了,来直接过吧,啊,那不看它了。这是23是不会有错的啊转换哎,走你看这是23吧,这时候就出来了啊好了,那这个时候呢,它会删除,删除的话咱们到数据库这边来刷新看看啊,一会这23件条就没了,现在执行。走啊就行了,这行以后你看23这条啊。走是不是没有了就删除了,删除完以后啊,它会重定向到图书列表页面,咱们给他放过去,走这里呢,就少了一个时间简史啊这样的图书。啊,少了个时间简史好了,那么这样子呢,删除图书啊就完成。但是这样就够了吗?哎,其实还不行,有什么问题呢?大家注意看一下啊,那么有时候啊,我们想删除的是时间简史一一这最后这一条。
13:05
但是有可能我们把鼠标移到这里的时候,不小心手一滑,诶在这里就点到了。啊,这里就点到了,或者说是我们只是把鼠标移到这里,对吧,人越神话啊,但是没想干点它不小心就碰了一下触摸板,那这个时候呢,它也会触发这个删除,所以一般我们在删除的时候啊,要先提示一下用户。啊,要提示一下用户好,那这个时候怎么做呀,我们要给所有的按删除按钮绑上单击事件,在每次提交之前先给用户确认提示操作啊,我们来看一下怎么做。那么首先呢,我们找到不可manage删除这个地方。来给它绑上一个class delete class,然后呢,通过A标签加上这个样式,查找他这个删除的A标签,绑定一下单列事件。
14:07
好,Type,看这是javascript,好在里面写上啊,页面加载完成之后,好,那么我们去查找一下什么东西啊,A标签加上delete class.click。OK,咱们说给删除的A标签绑定单击事件啊,用于删的确认提示操作好,这里面要干什么事情啊,就直接提示了啊come。哎,Confirm说你确定要删除某某某啊,这个说明吗?是吧?好,那么这个我不知道大家还记不记得哈,这个方法的返回值,Confirm这个方法的返回值,大家注意再回顾一下啊,可能大家都忘光了来,Confirm是什么呢?是确认提示。
15:18
框函数。是确认提示框函数,哎,那么参数是它的提示内容啊,那么它有两个按钮,一个是确认,一个是取消,那么点击确认和点击取消啊,我们各自会做不同的工作,各自呢会做不同的工作,哎,那么比如说取消,咱们可能就啥也不干了,是吧?确定呢,咱们就继续发起请求,那怎么样,咱们就知道他是点击了确定还是点击取消呢?哎,大家注意看一下哈,就是返回处表示点击了确认啊,返回false。
16:03
表示点击取消啊,就表示点击了这个取消,好,那这时候怎么办呢?呃,大家想想,我们直接return就可以了,在这个地方return其实完了。为啥?大家想想啊,我们,我们return for会干什么阻止?元素的默认行为意思就是什么呢?不提交请求,大家注意看,当你点击了false的时候,它就取消嘛,啥也不干嘛,那这时候你不是需要流程fo吗?对吧,那如果说return to的时候呢,你这里其实也是需要流return to,告诉这个浏览器说你可以提交,那其实咱们直接把这个结果称就可以了啊,把这个结果直接捋称就行了,好那么中间这个地方还需要干嘛呀,还需要获取。
17:02
当前你所点击所在行的。图书名称,然后用于提示用户就他当前的删除谁啊,那怎么获取呢?大家注意看一下哈,在哎事件的function函数中有一个历史对象,这个历史对象是当前正在响应事件的DOM对象。啊,是当前正在响应事件的动对象,好了,也就是说大家看啊,这有个Dis Dis表示谁呀?表示你所点击的这个删除,哎,那么我们可以通过这个删除的洞找到它的复原数,再找到它的复原数。再查到它里面第一个。TD元素,我们就可以获取这个图书的名称了,那我们怎么做这个操作呢?取两次负元素哈来。
18:03
注意看,我们先把这个断对象转成几块,取两次负元素得到那个含对象,然后呢,Find再查找后代TD,咱们要的是第一个里面的文本内容就可以了,好,那现在写好之后啊,我们刷新了这个页面啊,让这个代码它生效,我们点击删除试试看啊。Javascript高级编程。没问题是吧,取消他也没发啊,再点一下人眼神话也有取消也没事,那么找一个时间简史或者说一一吧,啊点击一旦我们确定走,你看请求就发过来了。就发过来了,好,那这个时候我们往下走一行啊,走一行ID多少啊,26 26是我们刚刚点的时间,前点一一看见了吗?嗯,那么它现在啊,再往下走就删除了。
19:01
走没了啊,没了以后呢,咱们给他放过去走走,你看。这边就彻底的没有了啊,这都是整个的一个删除。
我来说两句