00:00
好,然后呢,我们下边呢,咱们就通过view,然后然后将我们当前的这个超链接去控制咱们phone表单的提交,那我们在这有这个view的GS文件吗?没有,那所以说咱们在web APP下边,我是不是可以创建一个目录,然后这个目录咱们就叫做static静态资源,OK吧,好,大家注意一定不能放在web ino下了啊,因为放在we部ino下面的内容是不是必须通过转发来访问是不是对吧?好,然后static下面咱们再来创建一个目录叫GS,然后来找到我们当前咱们的view.gs给大家的资料里面有没有,有吧,这是不是有个static啊,是不是啊,然后咱们点开,然后GS把咱们的view.gs给拿过来,那另外一个GS大家认识不认识啊,认识了叫什么X,是不是来实现咱们的阿贾克斯的,对不对,哎,好啊行,然后v.GS咱们引入进来之后。
01:00
然后我们是不是可以在这个地方来引入我们当前的view GS可不可以啊,可不可以啊,可以吧,然后type等于加type的javascript的,然后是TH冒号src是不是。是不是吧,是吧,然后呢,It大括号斜线,然后static,然后下面的GS下的v.GS能看懂不?哎,啊好,然后写完之后在这咱们是不是就可以来写咱们的加va的代码了,是不是啊哎,好啊行,然后T等于text斜线加va,然后在这你要么直接new view,你要么呢,创声明的变量去new是不是也行,对不对,对吧,挖一个view等于等于另一个view OK。小写啊大写是吧,好好来另一个view,好,然后这大括号里面,咱们是不是要来写这里面的属性对不对,对吧?好,然后怎么写啊,啊首先那咱们是不是要来绑定我们当前view的这一个容器是不是啊,好,因为我们当前要操作的超链接在这儿,那所以说我们是不是要把容器,我们所设置的这个容器,它必须得包括我们要操作的元素是不是啊,对吧?那所以说大家可以把它设置在这个地方。
02:29
是不是?当然呢,大家是不是也可以把它直接设置在table中,可不可以啊,可以吧,咱们在这来写一个ID,然后这个咱们叫做data table,可不可以啊,可以吧,哎,就是table table,好,然后叫做data table好,那我们下面咱们就可以来设置我们当前我们的view的容器,然后用的是属性也没问题吧,双引号叫做井号data table是不是啊,好,这是第一个,然后再往下的话,那我们是不是也可以来设置data来绑定数据是不是,但是现在咱们需要绑定数据吗?不需要,我们仅仅是要来处理我们当前这个超链接的点击事件是不是啊,好,所以说我们在咱们的这个delete删除的超链接中,然后来写一个a c click是不是绑定一个点击事件呀,对不对,然后等于比如说咱们就叫什么。
03:29
咱们就叫做delete em employee叫delete employee可不可以啊,可以吧,好OK啊,行,那在这里面哪个属性是来处理咱们当前的事件的,是不是有一个叫做me ho,叫做methods,对不对?冒号啊,Methods methods这东西该怎么念methods是吧?那我们原来的英语老师都是骗我的呗。
04:08
啊行,好挑毛病是吧?啊啊来行methods,然后这里面咱们就可以来写我们的这个函数的名称,然后再对应我们当前的一个函数,对不对,那咱们当前函数名是不是应该叫DELETE1洛对不对,然后冒号加上一个function没问题吧?好,然后在这个地方咱们是不是可以来写咱们当前的第一个参数叫做event,表示当前的事件,也就是我们当前咱们的这个点击事件,没问题吧?好OK,那下面大家说咱们应该怎么做啊。大家说咱们应该怎么去做呀?啊,首先咱们第一步咱们是不是得获取我们当前的分母表单呀?哎,大家说对不对,对吧,得获取我们当前的form母表单,然后呢,那获取form母表单呢,我们在这就要给它加上一个ID了,是不是,比如说咱们就叫做delete for delete for可不可以啊,可以吧,好,怎么来获取,大家说大家没有学过g query,那咱们就直接用GS原生GS就行,document.get element by ID,然后其中写咱们当前表单的ID没问题吧?好,然后在这怎么写,大家说啊,是不是Y一个formm,或者说咱们就叫delete form等于它没问题吧,好,OK,好,那我们现在既然要控制我们分额表单的提交,那我们经过观察,咱们份额表单有action没有?
05:44
有action没有,没有action,那没有action的话,咱们是不是要先给action赋值它才能提交,因为如果当我们不设置action的话,大家想想这是啥意思,咱们让表单提交,表单应该提交到哪?提交到当前页面见过没有?见过没有,如果action没有值,或者说action你没有写,那我们当前的分文表单提交之后只提交到当前页面能听懂吧?好,所以咱们一定要设置action,那怎么来设置?大家说啊,Delete form.action是不是来操作我们当前form表单的action属性对不对?那我们当前要提交到哪呢?大家看我们当前的这个触发事件的超链接的h ref是什么,我们是不是就要让提交到哪,对不对?
06:35
是不是我们就要让表单提交到哪对不对,所以说咱们应该怎么写啊,Event是不是来表示我们当前触发触所触发的事件对不对,然后event里面是不是有一个叫做target来描来指什么?指当前触发事件的元素,也就是这个超链接对不对,对吧?然后再点h ref,然后是不是就可以来获取当前触发事件的超链接的h ref属性,能听懂吗?能听懂吗?啊好意思,这不是TH冒号rh ref吗?大家说是这个东西先解析,还是我们的view先执行?
07:19
View先解析。啊,是咱们的SIM Le先解析,还是我们的view先解析啊,那一定是SIM live先解析吗?对不对,你这G冒号h ref这浏览器能解析出来吗?能不能不能,所以说这个东西一定是先被咱们的c Le来解析的,对不对,哎,好啊,行,所以说咱们可不可以这样用,可以,那G冒号h ref解析之后,那不就是h ref属性吗?大家说是不是,是不是,是啊,好,OK,来,那咱们当前的action也有值了,那我们下面咱们是不是就需要来提交表单了,对不对,是delete form点什么方法,Submit方法学过没有,学过没有。
08:07
学过吧?Submit方法来提交表单吗?学过没有?好。学过就学过,没学过就没学过,行吧,没学过就说没学过,没学过就记住呗,这submit的方法就是提交表单的意思,OK吧,啊行,然后设置完之后,咱们是不是还剩下最后一件事情,大家都知道咱们HTML中的有些标签啊,它是具有什么默认行为的,对不对?就比如说咱们的超链接,你点击之后,就算你绑定的有点击事件,它也会干嘛跳转页面,像咱们的submit按钮,就算是你给他绑定的有点击事件,点击之后它会先执行事件,然后再干什么,再提交表单,对不对?所以说咱们需要来取消默认行为怎么写啊点叫做prevent default。
09:06
这个知道不知道知道吧,好,这个大家注意啊,好,然后这个是来取消咱们超链接的默认行为,OK吧,哎,取消超链接的默认行为,然后这个是干什么的,大家说这个是不是应该是来提交表单,好然后这一句话是用来干什么的,是不是将咱们触发点击事件触发。好,然后触发点击事件的超链接的什么?大家说ref属性,然后赋值给表单的X是能看懂不?好OK啊,行,那这句话是干嘛?大家说是不是来获取根据,然后ad,然后来获取表单元素是不是?嗯,能看懂吧,好OK啊行,那大家看,那这个时候当我们来点击超链接,然后是不是会取消默认行为而去提交我们当前的这个表单,对不对,对吧?好,然后提交表单之后呢,咱们在这这是post的请求,并且传输了下划线method,那经过我们的过滤器开根http method future的转换,是不是就可以将咱们当前的请求方式给转换为比例,没问题吧?好,那所以咱们是不是就可以来写我们当前的控制器了呀?
10:34
对不对,哎,他不,然后返回一个字符串,然后叫做什么叫de,叫de delete对不对,好OK,大家看啊,首先咱们的请求映射长什么样?大家说哎,好,这是value value等于谁斜线一摸和lo,而且咱们是不是还传过来了一个什么,咱们在这是不是还过来了一个ID呢,对不对?所以说在这应该怎么写斜线,然后呢,要用一个占位符是不是来描述咱们传过来的ID对不对,好ID,然后逗号,咱们的请求方式应该是request method.delete没问题吧,好OK,好,那我们现在要想来获得咱们路径中占位符所表示的数据,应该怎么写啊,大家说在我们的行参位置来设置一个行参,好,然后通过咱们的注解pass。
11:34
Able,然后将我们占位符所表示的值跟我们当前的行参进行绑定,对不对?能看懂吧?好,OK,那下面咱们是不是就是一摸lo DAO点什么方法,DD的方法,把ad往里面一放就完事了,是不是是吧?那我们删除成功之后大家说怎么办?啊,删除成功之后,咱们应该跳转到哪儿,应该跳转到表单页面。
12:03
什么是表单页面,咱们应该来跳转到咱们的列表页面对不对,但是你能直接跳列表页面吗?不能,列表页面的数据是不是通过我们上面咱们的这个空这个请求来完成的,对不对?所以说咱们应该怎么写,大家说啊,应该是return一个视图名称,我们应该是通过转发或重定向来访问我们上面的这个请求,大家说对不对,对吧,那咱们应该用转发还是重定向呢?啊,用转发还是重定向,我们当前删除成功之后,是不是跟之前的请求就没有关系了,对不对?大家想,如果你用的是转发,那我们当前咱们的请求地址,地址栏中是不是还会保留这个地址能听懂吧?所以说我们现在用重定向之后,那最终咱们的地址栏中是不是应该显示的就是我们的这个地址能看懂不?哎,所以说大家注意啊,你都你都操作成功了,那跟原来的请求就没关系了,那咱们就该用重叠相等了,对不对?让咱们的浏览器就发送一个新的请求嘛,是不是啊,好啊,所以说怎么写啊,Re ready rap,冒号斜线inlo能看懂吧,这默认是get请求不是,是吧?为啥?因为你这样写相当于咱们的浏览器去访问它,相当于咱们自己在咱们的地址栏中输入了一个地址去访问它对不对。
13:37
那所以说这种方式默认不就是get的请求吗?是不是是不是好啊行OK,那我们下面咱们来测试一下吧,行不行,好,然后咱们来重新部署,大家看好,大家说会有问题,不会。会不会会是吧,好,那我们来看一眼啊,首先我们下面咱们来刷新页面,好,然后我们来点击比例的,大家首先看,先看咱们的左下角地址对不对,对不对,对,好,然后点击之后大家看,哎,咋的了,就是request method,然后get supported,那这是啥意思啊,大家说你看这个东西是啥意思啊,那我们刚才是不是已经经过了一系列是吧,这个花里胡哨的操作对不对,将我们的这个超链接去去去控制了一个表单的提交结果,现在是不是还是啥默认使用的是get的请求,是不是啊,那所以说大家想想这个时候会这个时候这个问题应该是什么,大家想一下啊,来咱们来看这个列表,列表页面现在出现的问题就是我们点击它之后,然后它发送的还是一个get的请求,那是不是就是说明我们在这。
14:55
他给他绑定的点击事件根本就没有效果,大家说对不对。
15:00
是不是对吧?那为什么会有这样的问题呢?来,咱们回到我们当前咱们的主页面,咱们点击F12,然后把我们的控制台给它打开,然后大家来看啊,问题来了,什么问题谁找不到v.GS找不到对不对,对吧?然后为什么找不到,你看他既然找不到,那咱们写的写的那一大堆跟view相关的代码有效果没有啊,没有效果,那没有效果,那你点击超链接,那不还是get请求吗?对不对?所以说咱们现在就知道问题所在了,那我们该如何去处理这个问题呢?大家说那为什么他找不到啊,为什么?大家想想,首先咱们先这样啊,你先来看一下我们当前咱们的服务器中有没有,那我们当前服务器中运行的工程是谁呀?是不是应该就是我们当前咱们的这个包下边的内容,对不对,对吧,咱们打完。
16:00
打包之后的内容嘛,是不是啊,来点击之后大家看web in for much for,有static吗?哎,这里面有static吗?没有static呀,是不是对吧?那为啥没有static呢?大家想啊,我们刚才是重新部署这个东西,是不是应该是我们之后咱们才添加上去的是不是,那所以说我们现在要想让我们的这个打包的结果之力,打包的结果里面有我们当前的view.gs那我们是不是就需要干什么来重新打包,大家说对不对,对不对,对吧,因为这个地方咱们有没有让它重新打包啊,没有,所以说它是不是里面的内容还是咱们之前的内容能听懂吧,好OK啊,来找到咱们的spring VC,然后刚rest,不要瞌睡啊。把眼睁开啊。好,然后来找到咱们当前的生命周期,然后来打包,重新打包,大家来看。
17:04
好。来大家看成功了没,成功了好,然后这个时候我们再来看咱们的target里面,大家看这个时候有没有了,是不是就有了,那有了那肯定就能找着了吧。有了它就肯定能找着吗?也不一定,我们刚才咱们找不到是因为什么,确实咱们部署到服务器里边,咱们的服务器中有没有啊,没有好,然后下面咱们再来重新部署,大家看咱们能否正常访问成功呢?来大家看好啊。好,然后咱们点击右键把它清空掉,然后在这我们再来刷新,哎,大家看。然后在这大家看好,你看v.GS咋的了?还是404是不是对吧?那我们当前咱们的服务器中它本身就已经有了呀,那有了为什么还是404呢?大家注意啊,我刚才所解决的问题是服务器中没有的这个问题OK吧,现在服务器中有了,为什么还访问不了,为什么大家注意,因为大家想想我们在实现spring VC的时候,我们是不是配置了一个核心前端控制器叫dispa of对不对?然后咱们所设置的这个请求的请求路径的映射是不是一个斜线呢?那斜线来表示的是不是就是所有请求啊?
18:32
是不是是吧,好,然后大家看,所以我们当前咱们来访问我们的静态资源,我们的v.GS大家说是被谁来处理的,被咱们当前的spring mvc的前端控制器处理的,能听懂吧,你看既然在这给咱们报错了,说v.GS404没找到,大家说这个资源是不是这个请求是不是就是我们的spring VC处理的,对不对,对吧?但是咱们的静态资源能被spring VC处理吗?不能吧,我们原来在we部阶段的时候,咱们讲过一个默认的solve叫default solve,而这个东西才是我们处理什么呢?处理静态资源的一个solve,知道吧,好,所以说我们现在咱们要干什么,我们来找到咱们的spring VC的配置文件,然后在这里面呢,去添加一个标签,大家看啊,什么标签,Mvc devot so杠,Handle。
19:32
OK,就这个东西,那这个东西是干什么的呢?大家注意好,记好,然后来开放对谁的访问,对静态资源的访问能看懂吧,好,然后咱们配置它之后,它是怎么工作的,听好了啊,首先我们的静态资源在访问的时候,会先被咱们的SPVC来进行处理,也就是前端控制器进行处理,能听懂吧,如果说在咱们的控制器中找不到相对应的请求映射,它就会交给谁来处理啊,交给咱们的默认的solve来处理,如果默认的solve能够找到相对应的资源,那咱们就访问资源,如果说找不到相应的访问资源,还是404,能听懂吗?能听懂吧,但是这个时候我们当前咱们的这个地方,大家看我们的控制台还会报错,不会了,不会了,因为什么?因为这个错是由。
20:32
给我们显示出来的spring VC显示出来的,那既然现在找不到是因为默认的找不到,那现在还会放这个错吗?大家说会不会了?知道什么意思不?什么?大家知道什么意思?不道知道是吧,就是只有我们spring VC在处理请求的时候,它找不到请求映射才会报404知道吧,哎,才会在我们的控制台里面去报这个问题,OK吧?哎,显示什么no mapping for,什么get,什么SPA static GS view.gs但是咱们配置了我们当前默认的solve处理之后,如果spac找不到,那是不是应该就要交给咱们默认的solve去找,那默认的solve如果也找不到的话,那现在还是VC处理的不是了,不是了吧,那他找不到还会报这个错误,会还会在控制台里面显示什么no麦P,不会了就不会了,能听懂吗?能听懂吗?
21:45
好,然后下面咱们再来重新部署,大家来看啊。好,然后咱们来刷新,大家看好使不好使,下面还报404,我报了不报了,能看懂吧,啊行,然后咱们在这大家看好,咱们点击delete好使不好使,好使delete好使不好使啊行,大家瞅一眼啊,我把这个东西给它干掉,然后咱们在这随便来访问一个S,比如说我就访问employee.gs可不可以啊。
22:22
可不可以啊,可以吧,那当前这个请求是不是先被前端控制器处理,他能找到相对应的请求映射吗?找不到,然后下面被谁处理啊,默认的so来处理对不对,对吧?好,我已经把控制台给它清空掉了,然后咱们来一个回车,大家看是不是也是404,因为有这个资源吗?没有这个资源来大家看一下啊好。来大家看好在这呢,因为是我们当前咱们的这个日志功能啊,如果说咱们不加日志功能的话,然后咱们在控制台里面看不到这个效果,然后只有我们的spring VC在处理的时候找不到资源,如果说是404才会显示这个,但是其实大家看咱们在这看到的效果就已经不一样了呀,如果说是我们的dispat solve找不着,它会显示这么长吗?大家不应该是刚才咱们是不是应该是没有那么长的对不对,对吧?好,然后大家看一下,你看咱们在这儿是谁处理找不到啊,是我们默认的solve,然后再处理的时候找不到对不对,那比如说我在这我写一个叫做employee SSS,然后大家说这个时候这个东西是不是应该是来一个回车之后大家再来看来啊啊。
23:41
来大家看你看来看一下这个是不是也是被咱们默认的solve来处理的,对不对,所以说就是我们配置上我们当前的这个标签之后,它就变成了什么,先由我们的spring VC来进行处理,来处理请求映射,如果能找到,那咱们当前是不是就直接去处理了,对不对,如果找不到,他就会将当前的请求交给谁来处理啊,默认的solve来处理OK吧,好,如果说默认的solve能找到,那咱们就访问,如果说找不到,在咱们的控制台里面是不是就给我们显示默认的solve的问题了,能看懂吧?哎,好啊,行,大家注意,这个是我们日志的功能啊,如果说咱们不添加日志的话,这个地方其实我们什么都看不到,能听懂,不只有SPVC在,如只有咱们的SPVC在处理的时候才会出现这个错误啊,才会在控制台输出信息这样的啊好。
24:41
OK,那大家看,那我们的删除功能咱们是不是就完成了对不对,好这里面呢,有几个比较重要的地方,就是我们的删除,我们是超链接做的,对不对,但是呢,我们现在要来发送一个比delete请求,那我们就必须要满足什么情况。表单提交请求方式post还要传输请求参数下划线method对不对,所以说我们就通过view,当我们点击超链接的时候,去控制了咱们当前的这个表单提交没问题吧,好,然后咱们才可以去发送一个比例的请求,是不是啊好啊,这个大家能听懂吧啊。
我来说两句