00:02
好了,看老师屏幕啊。那上午都是小问题啊,就哪个字母错了,哪个字母错了呢?啊,那这个写的时候就小心一点就行了,那再有就是啥呢,今天上午我还听到有一些声音啊,有学生还还挺夸老师呢,哎,老师,哎这个我这我看昨天看看一晚上没看出来啊,你这连打断点都不用就看出来了,我不是说不用打断点,你知道吧,我也得打,但是怎么着呢,动态代理这种东西idea当中的啊,对于动态代理的支持啊,大家注意啊,他这个端点支支持的是非常差的,OK吧,那动态代理吧,你你点它它里边进去。你就直接来EXEXP执行器就close OK吧,所以说在动态代理啊,动态代理这啊,你就别打断点了,这个idea啊,这个是一个这个通用OK吧啊这个老版本新版本我都测试过,OK吧,所以说啊,这个东西啊,如果你非得测的话,这个东西咱们有一个那个工具啊,就是idea之前有个比较老老的叫eclipse,你听过吧,啊eclipse对于这块支持啊,没有这个bug啊好,所以说啊,有些情况下我也是得这个s out一下啊在某些情况下呢。
01:16
啊,也是硬着头皮给你们看,我之所以上午看的那么准确,是因为我运气好,知道吗?啊,就是考眼神的问题,有些时候是最难的,写的时候一定要小心,OK吧,好。来我们来看看啊,也就是说有一些这个错误的这个提示呢啊,它会很明确,但是有一些错误提示它不是很明确,他是很笼统的,OK吧,所以说大家在写的时候一定要小心啊。好,我们等一把啊,嗯,今天下午啊,咱们这个目的啊很明确啊,就是。
02:05
啊,做个修改,然后做个删除OK吧,好,所以说呢,这个今天下午啊,这个内容不会很多啊,我们先从这个删除开始的啊,这个删除啊,其中有一个比较麻烦的点在哪呢。第一啊,是咱们需要批量删除,但是好在之前我们经历过了批量删除的洗礼,比如说考试对吧?好,那么还有一点就是什么呢?你把这个市场活动删了的这个同时啊,咱们是不是相当于还得关联到市场活动备注咱们是不是还有一张表呢。市场活动和市场活动备注什么关系来的?一个市场活动里边是不是有多个维度啊,是这样吗?就好比什么呢?你如果对市场活动和市场活动啊领会的概念不深的话,你可以把他们想象成班级和学生,是这样吗?我现在点击的是班级的名称还是学生的名称?
03:07
我点的是一还是多班级吧,我点的是班级的名称,点了一年一班进来之后,我列出来的都是什么呀,学生的这个班级所列出来学生的列表能理解吧,所以说呢,你在删除这个班级之前,你是首先得把这个学生都给干掉吧,能理解吧,好,学生干掉之后,最后再三班级是这样吧,所以说啊,我们比较麻烦的一个点啊在这儿OK吧,好,我们现在来看啊,同学们好,既然我们要执行删除,首先咱们是不是就得这个跳高啊。对吧,好,我来看一看。嗯,挑钩在哪呢啊,咱们来看一看。条勾是不是在这儿呢?同学们,是内等于XZ啊。
04:02
对吧,咱们是不是还得找所有name等于XZ的input,然后把他们的这个值是不是拿到,就相当于把我需要删除的这个ID就拿到了。对吧,好,我们找到这个删除的这个按钮啊,删除的按钮。好在这呢啊。好ID啊,给它起个名字啊,这个咱们约定好叫delete对不对。啊,叫delete b TN。好。咱们来为。删除按钮啊,来绑定事件啊执行。市场活动的这个啊,删除操作啊。
05:09
好点。Click function,好,首先我们得找到啊,大家注意啊,得找到所有复选框挑勾的,是这样吗?好,找到复选框中所有这个条。勾的什么呢?负选框的解扣对象,因为我们现在操作的这个啊,操作这个对象啊,操作这个行为的时候是不是。很少直接去使用这个GS原生GS到母箱了,对不对,所以说啊,咱们应该习惯于啊,使用这种解扣的对象啊。好,咱们来一个VR,咱们来X啊。
06:05
来个input啊,今天上午那种写法,Name等于。XZ,咱们得加条件了吧,是不是选中的呀。嗯,对吧,好,我们现在啊,得来判断一下啊。如果咱们这个Dollar X z,以前老师说过了,你拿这个解扣的对象是不是可以当做当对象的一个数组来使用,对不对?好,咱们来个点。如果等于零,说明什么呢?说明咱没有挑勾,是这样吧,好给用户一个提示啊,给一个友好的提示。好,请。选择需要删除的记录,OK吧,那这个L啊。
07:00
那人家肯定是选了对不对,好肯定选了啊。好,而且呢,好有可能。是一条。有可能是多条,因为我们允许使用批量操作的这种行为,是这样吗?好可以同时跳多高啊好,那么接下来啊,我们在这个L里边啊,就表示的是怎么可以执行删除操作了,是这样吗?比如说来个123啊,来测一下市场活动点删除啊,请选择。调一条点删除啊,123调两条。123没问题吧,OK啊好。那现在啊,咱们要执行这个删除操作啊,首先咱们这个URL。
08:00
先来列出来一下啊。这很简单了,是不是来一个delete.do就行了,对不对?De这个没问题吧?好,那大家想一想啊,那么我们这个URL后边是不是应该挂参数,挂的是这些个ID啊,是这样吗?好,那大家注意,以前我们传递参数啊,比如说今天咱们的这个往下翻啊,你看咱们今天传递参数,这两天传的参数。是不是都是以接身的形式来传呢?但是如果现在啊,你仍然是以接身的形式来传,你看接身里边是有画括号,有这个双引号,是这样吗?啊,符号比较多,比较难拼,是这样吗?所以说啊,我们现在要拼的一种情况是这样的啊,ID等于叉叉叉and ID于叉叉叉and ID等于叉叉叉是这样吗?同一个T下有多个Y6,如果是这样的话,你使用接森的形式来拼这些参数非常非常麻烦的,而且更重要的是什么呢?接身中的这个K啊,它是不允许重复的,OK吧,好,那大家注意啊,如果是同一个K项多个Y6。
09:15
咱们是不是必须以传统的形式,以K等于value and k等于Y流的形式来传参数,OK吧,我们现在首先啊,先要来拼接一下,大家注意啊,拼接一下这个参数OK吧,好,首先我们要做的是啊,拼接参数好。来一个VRPA参数怎么写?PA parameter是吧?好,我拼参数,那参数怎么拼呢?我哪知道拼的是什么?我们所有挑勾的是不是形成了一个解扣的对象?对不对,我是不是得把这个解扣的对象给它拆了,把里边每一个道母元素以及每一个道M元素中的这个Y流值拿到,我才知道这个ID的值等于多少啊。
10:07
是这样吗?你现在想一想啊,你的解扣的对象是不是相当于就是一个选择器啊,这个选择器它拢了一大堆我们需要删除的ID,但是呢,它是一个整体,它是一个解扣的对象,我怎么知道他都选了什么,不知道。是这样吗?好诶那老师啊,不对啊,你不是说过这个取值吗?那取值的话,咱们直接使用Dollar xa,点什么VL数就取得表单元素的值啊,这个咱们以前是不是讲过呀,但是你之前点VL怎么着,它有一个前提,它有一个前提是什么,我们以前操作是不是一个input。一个文本框是这样吧,一个select没错吧,它仅仅取的是什么呢。哎,这个解扣的对象里边仅仅只有一个倒对象的时候,是这样吗?如果啊,你百分百确保这个复选框里边只挑了一个勾,使用这种形式行不行?
11:03
可以,没问题。完全没问题,OK吧,即使你是附小框,只要你能确保里边只有一个元素,只有一个do,我直接这么取值可以没问题,OK吧,但是咱们现在不能确保,我们现在是不是肯定啊,是一条有可能是什么呢?啊有啊,这不是啊,是可能啊,可能是一条,有可能是多条对吧,所以说啊,我需要把里边的每一个倒给它变离出来,取7D值OK吧。将我们X中的每一个。对象啊,便利出来啊,取其。这个啊,Y流值就相当于什么呢。取得了需要删除的记录的ID,是这样吗?
12:06
行了,咱们for循环啊。爱的0I小于。Dollar ex Les。好,哎。好,我现在啊,大家注意看啊,我现在这个Dollar X他是什么对象。它是不是解扣对象,我现在要给它转换成每一个,在循环中转换成每一个倒对象,怎么转来的说才说呢。中括号写个什么?是不是写个下标I就行了,从零开始数呗,对不对,好,那这个是什么对象了,是不是倒对象,倒对象是不是一个点Y6,我是不是相当于把这里边的这个ID值就拿到了在这呢。看到没ID又拿到,但是我觉得这种做法比较low,我不想这么做啊。
13:04
哎,也就是我现在已经忘了,哎,GS对象这东西咋用来怎么取值来的,我都忘了,我只会用点VL方法。怎么办?我是不是可以把这每一个遍历出来的盗墓对象再给他干嘛呀?包装成什么呀?解扣的对象,我把每一个分别进行包装,是这样吧,这是不是又是解扣的对象,解扣对象取值又能用什么取点V是这样吧,都可以啊,都可以行,咱们来PAR,咱们来个加,等于来个ID,等于是这样吧,行,我们来看看啊。A了,咱们PM。一步一步试啊,同学们啊,也就是说你们在做这个测试的时候啊,哎,对了,这个我还当一个重点强调一下,你们在做这个测试的时候啊,一定像老师似的啊啊,我写一点,我就测一点,带你们测一点,能理解吧,就切记啊,那代码写了一大堆了,好几大坨了,然后一测全是问题,这个问题解决完,解决上一个问题,再解决上一个问题,这个问题就不好解决了,OK吧啊,每一个班级他都有啥呢,都有,对于这个代码产生这个咱不能说恐惧吧。
14:31
就觉得怎么说呢,老师我不敢不敢测,我可以,我可以照着你的代码写,我也可以自己写,但写完之后我不敢测,万一错了怎么办呢?啊,然后到最后同一测全是毛病,调一下午都调不完啊,走一步成功一步,咱们再往下走啊,能理解吧,好,我们现在测一下这个PM啊,那同学注意看啊,我先首先挑一个勾点删除走一个,这个其实没问题的,对吧。
15:01
那如果调两勾呢,看看啊,是不是ID等于什么什么什么ID等于什么什么,貌似也没问题,但是中间少了一个符号,是这样吧,And符啊,那么我们以后实际项目开发会经常出现这种情况。每一个元素后边都需要加一个符号。有可能是按符,有可能是逗号,有可能是分号,总之它是一个分隔符,OK吧,只有最后一个元素后面。不加这个符号是这样吗?好怎么样,咱们是不是得判断一下。如果不是最后。一条。记录怎么着?啊,不是不是最后一个元素吧,好好,如果不是最后元素啊,需要在后面追加一个,这叫什么符,按符是吧?按符行怎么弄啊衣服。
16:06
好,告诉大家一种无脑的方式啊,这无脑器就行了啊,把你的循环条件CTRLCCTRL为减一。就这这个东西就无脑机就行了啊好pam加等于什么呢。按的符好,我们再来试试看啊。首先啊,咱们先测一下一条的后边没有这个安德福吧。啊,再来测一下两条的。嗯,点删除诶这个按单符就有了啊,最后一个元素后边没有,这是我们想要的结果对吧?好,这是我们最终拼接好的这个参数,是这样吗?那参老师啊,那这个参数拼接好了,咱们是不是挂在咱们这个路径的这个后面就行了,是这样吗?好,但是大家想一想,如果你真是这么挂的话,咱们是不是相当于是一个传统请求啊,对不对,我们现在发出的100%肯定是什么阿贾克斯请求,是这样吧,阿贾克斯请求啊,啊删完之后啊。
17:11
啊,我们要求的是这个列表啊,啊,实现一个局部创新操作对不对,好,所以说呢,我们现在要一个阿贾克斯好找到我们的。太一说。你应该完善你自己的这个test啊,把这里边儿东西你可以多写点,就是你常用的东西OK吧啊,到时候啊,这个随取随用,OK吧,行,我们现在应该在阿贾克斯啊上把这个URL和data塔啊给它分割开,首先路径是我们的。delete.do这个没问题吧啊,参数是不是已经批完了啊,谁pai没问题吧,只不过这回是以什么呢?是以K等于Y流and k等于Y流的形式呈现的,对吧?
18:06
好,Type删除操作呀。Post on data。这应该会分析,想一想啊啊点吧点吧做删除,删完之后呢,让后台给我返回点啥是不是成功还是失败就可以了,对吧?好所以说啊data啊,咱们要一个success就行了啊Su啊,咱们来个true或者是。好。如果得点SUCSS。EL。好,咱们删除市场活动失败OK吧,但是如果他删除成功呢。咱们都需要做什么?
19:00
删除成功后。大家想一想。你是不是这玩意儿是不是得刷一下,你刷一下诶,这是不是今天上午咱们分析的配句绿色方法的六个入口啊,删除是不是得也得占一个呀。Page list1和二可以吧,删除之后回到第一页,设置默认每页展现两条记录可以吧,我们现在总之先把这个页啊先刷一下,至于这里边的参数应该传什么,我们。在整个正删改查做完之后再分析,这个先不着急,OK吗?不着急,那老师删除之后我们应该停留在当前页啊,还是修改之后应该停留在当前页,添加之后应该停留在第几页,这些问题咱们一会儿再分析,不着急,OK吧,我们先把这个啊页面先给它刷了,OK吧,刷一下。行,那大家注意啊,还有一个小细节方面的问题。
20:05
如果人家用户全选了,你删完之后谁局部刷了这个列表,刚才咱们调page list是不是局部刷了,但是你这个勾是一直挑着呢,他们刷完之后这里边儿可都是空白了,对不对,这个勾可是挑着呢。咋办呢?哎,这个勾咱们可以在哪给干掉呢,同学们。咱们是不是可以有两处啊,一个是什么呢?啊,你在删除成功之后,是不是可以把这个勾给干掉啊,那还有一个入口是在哪呢?每一次我在调啊这个page list的时候,也就是说每一次我在刷这个列表的时候,我是不是可以把这个勾给它干掉啊。可以吧,行啊。咱们将这个复选框啊,这么说啊,将全选的复选框的勾啊给它干掉。
21:11
来这什么呢,全选点。屁啊。Check,来个什么false?每次掉他啊,咱们都干掉。行。接下来啊,咱们来看一看啊。走一下这个后台delete点度啊。怎么还得来一个分支,哎,这回咱们这个模板模式是不是展现出它的这个威力了,对不对,需求啊越来越多,对不对,咱不可能为每一个需求都制定一个这个controller,是这样吗。
22:01
Delete。好,我们来执行市场。活动的这个啊,删除操作对吧?好,那么我们首先得把这个参数接收了呀,这个参数咱们传的这个K叫什么,是不是叫ID啊。这没错吧,但是啊,同一个K下多个Y6,咱们是不是应该来一个ID数组啊?没错吧,Request get parameter。Value ID OK吧,好,原材料拿到了,接下来咱们是不是得找这个业务层了,对吧。好,又成as,咱们调一个Dee,咱把这个ids啊给它传递进去行吧,好。嗯,我们来一个布尔值对吧,来。
23:05
咱们来一个这个就行了,Response啊,后边咱们来一个flag。好,接下来咱们来写业务层的这个delete啊。好,对于做这个删除啊,咱们在删除真正这个市场活动之前,咱们还得做点事儿。首先是不是得考虑一下我这个市场活动有没有关联到这个备注啊。对吧,大家想一想这个问题啊。
我来说两句