00:00
呃,全选框已经做完之后,接下来我们就准备来做这个删除的操作了,那首先先把按钮找到,所以我们这里呢,先把按钮给它找到啊,按钮我们找一下,按钮在我们的这个位置有一个删除的按钮,那么我们给它增加一个ID。啊,或者咱们这么写也行啊,咱们就叫on click吧,因为我点击的目的就是为了删除用户啊,我们叫delete users,我加了个S,表示的是多个,所以拷贝拷贝之后,那么接下来我们在这个位置给它来写上啊,咱们叫function,嗯。诶,或者放最后去吧,放到我们的最后去啊,来放到我们的这个位置,嗯,好,然后呢,我们写上啊,那你删除的时候,那这个时候呢,我们需要干嘛呢?你得判断一下你到底有没有选中复选框,如果你一个都没有选,你是没有办法删除的,所以在我们上面的这个位置,我要把它拿过来拷贝。
01:10
拷贝以后,我现在要知道我到底选择了多少个,所以把它拿过来,拿过来以后我们的boxes就拿到了,但是你拿到以后,我刚才说了你的长度,你的这个到底选没选我才知道,所以点我们的less,如果它等于零,说明你根本就没有选择过,那我要提示一下了。来写上啊,请选择需要删除删除的我们用户信息啊,你都没有选,你怎么删除,你删不了啊,我们要提示一下,那么else,那么else的话,那么我们这里啊,要不是零了,那不是零的话,就说明你选了,那你选了以后,万一你可能也是误超过怎么办?所以我们也一样给它提示一下,所以啊,我们放到这里,嗯,好放完了以后呢,我写上删除选择的用户信息,选择的用户信息是否继续啊,咱们这么来写,那如果他点击确定的话,走的就是我们这里,那我们删除的就是选择的用户信息,好写完之后这里我加一个S就可以了,那你加一个S之后,那这个传。
02:38
数据我们该传什么呢?这就是个关键了啊,为什么说是关键了呢?因为我们传的不是一个了,那你不是一个的话,我们这个数据该怎么传呢?这里我们要给大家说一下,因为我们的表单元素在传递数据的时候往后台传递,我们可以根据名称来传,那如果名称是相同的话,后台就会接收到多条数据,所以说我们这里给那个复选框,给它的名称咱们就叫UD,那你这么写完以后,那么它的value其实就是每一个用户的IDU的点ID啊好了,那你这么写完以后,只要你勾选了复选框的话,那么我们的U的ID就得到了,得到了以后,那我们如何把选择的多个用户的ID传给后台呢?我们有一种特定的写法,就是把当前的表单元素给它序列化组合,形成我们要上传的数据。
03:38
句来我们看看我们该如何来写,我们这里呢,就需要给它增加一个表单元素了,所以说我们这里有check box,我们给它增加表单是可以的,所以来我们在这写上,呃,我想在哪写会好一些,这样吧,我们在下面的这个位置写啊,来在这写我们写上啊,咱们在这写,我们写上写个for啊,然后呢,我们在下面写上一个我们的for就可以了啊好,写完以后我们写上ID,嗯,然后我们写上一个就叫U,嗯,送吧,啊好。
04:16
然后把u four我们拿过来,拿过来以后我们的这个删除的这个数据我们要放到这里来,Dollar符,然后我们写上咱们叫form,那么这个form呢,我们要把里面的数据给它序列化,所以我们的方法当中有一个来我们找一下我们的序列化,就在这儿点一下,他说了将表格的内容给它序列化啊,那我们这里呢,大家可以看到,其实就是这个方法来拷贝,拷贝以后给它放到这里就可以了啊,好,我们写上它,嗯,写完写完以后,那现在我们就等同于把页面中的多个数据向后台传递,那么后台就应该接收我们的数据,所以public object,我们叫delete加个S,然后在这里我们的request mapping,然后写上我们叫斜杠delete加个S。
05:17
还有response body写完之后,那我如何来接收呢?因为你传递的是相同名称的多条数据,那这个时候我们可以封装成数组,那我就写上叫做inter,我们的UID啊,咱们这么写就可以了,写完之后,那么我们跟以前一样,阿贾克斯等于new阿贾克斯,然后返回return,嗯,接下来是我们的try catch,那里面是exception e一点反过来,然后点set success,给他个false,然后这里点set set success啊。
06:08
好,给个true就可以了啊,成功和失败,接下来我们就准备来删除它了啊,那么删除的时候我们就把这个map咱们先准备好,我们一般我们传数据都会传递我们的map集合,那么string object,然后这里我们也写上啊,写上string object啊好了,写完之后,那接下来map.put我们就叫user ids,表示复数的意思,User ID啊写完之后,那么user service.delete加个S,然后呢,我们的map传过去,嗯,传过去以后点击我们的create创建方法,然后实现这个功能。点增加,增加之后往这边来,那我就写上叫user door.delete users,然后把map传进去,呃,进去以后点击小灯泡,然后呢,我们correct创建一下啊,创建完成以后,在我们映射文件中来补充对应的社口文。
07:21
好,间括号delete,加上一个名称,好,那么我们就写上了,我们叫delete from t_U那么我们这个地方呀,跟之前的逐渐删除不一样,因为我们要删除多条,但是删除多条啊,它不是全删,那所以它应该有个范围,所以我们应该用一个范围,这个范围我们写个in,那么括号里面应该写问号逗号,问号逗号表述的是删除多条,但是你这个问号的个数是一个两个还是三个,我们不确定,那既然不确定,它应该动态来循环判断,所以我们这里是应该把它来循环一下的,所以我们这里间括号,然后呢,我们写上咱们叫for啊,间括号for it。
08:13
你要对哪一个集合速度循环呀,叫U的ID加S,然后每一个我们的。数据,那么我们用UID来表示,那么我们这里还有一个范围,就是open和那个close用一个小括号,嗯,接下来我们的每一个数据之间会有分隔符,行了,中间加上我们U的ID就可以了,你的这个地方是UID,那我这就写UID,那多个之间用逗号隔开,这是我们循环的边界,有开始有结束啊,现在蛇口文我们写完了,程序我们也写完了,我们来验证一下。把服务器给它停掉,停完了以后我们再重新启动,观察一下效果来点击启动。
09:05
好啦,启动完了,启动完了以后呢,我们刷新,刷新以后我们来观察一下我们的数据,这两条数据我不想要了,那我点击删除点它会提示我删除选择的用户信息是否继续,我当然继续了,所以点击确定点点完以后他说好了,大家可以看到它这个地方它出错了,它出错的话,那这是为什么呢?我们来分析一下,来一二选中点删除,点删除点确定,他说失败,那么这个失败我们来看看他是什么意思,那么我们首先看看后台发生了什么事情,大家可以看到他这边出错了,那么错误的原因呢,他是这么来说的。他说呀,我们的那个U的ids呀,它的值呀,是个那。那这么这个值怎么可能为那呢?这个值不是我们通过表单中数据取过来的,封装到map里面去了吗?但是他说了维纳,那维纳的话它循环不了,那就会出错了,所以我们这个问题就在于我的数据接收的为什么不对,那我怎么传的这个数据呢?大家来看一下,我是用这种方式来传的,那你用这种方式来传的话,那么它到底是什么呢?我们来确定一下,所以啊,我们首先把它拷贝,我看看我们到底传了什么样的值,Alert,然后过来,然后return好刷新一下,刷新刷新以后点,然后点删除,点确定,你看怎么了。
10:48
没有任何的数据对吗?那所以说他确实后台接收不到,那不对呀,那这个方法恰恰是我们文档当中告诉你的方法,它就可以把我们当前的表单元素的内容封装成我们字符串,并且可以用于阿贾克斯星球,那我们现在不就这么做的吗?那为什么不行呢?我们来给大家说一下原因在哪里,大家看我们选择的是不是复选框啊,那你刚才是不是把那个表单给他做了序列化了,而那个我们的复选框,大家看我们的复选框是不是在这里,在TR吧,那这个TR最终放到哪里去了呢?最终不就是放到了我们的这个t t body里面吗?放到这里面去了,而你的表单不就在这儿吗?所以表单里面包含了我们的什么,我们的复选框。
11:44
所以啊,那没有问题啊,但是你看这儿,大家看我们点击右键检查,你会发现我们的复选框确实在这里,但是你看看那个表单在哪。你会发现这个表单,大家看开始和结束,它在这个位置,它包含了teabo吗?没有,也就意味着在当前场合下,你虽然说是这么写的,它包含了tbo,但是浏览器在解析的时候它是不会包含的,所以说你这么写没有意义,因为你这么写其实等同于怎么写,这么写,那你这么写了以后,大家想想表单里面有东西吗?没有,那当然就不行了,那我们该怎么做?很简单,把它提出去,你把它提到我们table的外面就可以了啊,不要放在别的地方,你放在我们table的外面,那这样的话就行了啊,Table的外面好,我们现在来试一试,这是我们前端标签的使用方法啊,来刷新,刷新以后点击它,点击它,我们点击删除,点确定,你看对不对,是不是传了两个值。
12:57
它就是叫UID,那么后台封装的它就是数组,所以好,那么这个咱们知道了以后,把刚才的程序再改回来。
13:08
我们删除的这个地方我们就知道了,我们现在有了,那么有数据的话,你后台接收的不是空,那不就行了吗?所以刷新,我现在把这两条数据给它删掉,点击删除点,然后点击确定,点删除没有了,那么我们数据库里面没有了,页面中也没有了,批量删除就成功了。
我来说两句