00:00
下边呢,我们用来完成一个删除操作,注意这个ulmp斜杠ID看到了吧,同时这是一个。Delete请求。删除效果,删除之后的话呢,我们从定向到那个。List页面,好吧。看一下这个如何来完成,首先我需要来改一下,它叫EP。斜杠什么呀?ep.id写好了,那这个时候呢,这个请求必须得是一个delete请求是吧?来我现在写的一个目标方法,Public string delete return redirect下边的EPS。Request mapping value,注意看P,同时method request method点儿。
01:13
第一次请求。ID在这呢。带过来ID,好的类型的ID,我执行一个删除就可以了,Delete ID这个方法呀,并不是特别的难写。是吧,哎,这这个ID传过来我们知道,我们还得加上一个注解叫什么来着,Pass variable ID这就可以了。难在这个。页面上。我们这一块的话呢,实际上是一个链接,我得把这个超链接给它转为。Delete的请求我们知道,首先这个delete请求的话呢,我们需要依靠什么呀,我们需要依靠这里边我们配的这个。
02:08
Filter,具体就是这个hidden http method filter,它只能把post请求转化为delete,或者是所以说。实际上我们希望这是一个。Post请求,但是对于我们一般的超链接,它就是以get,所以说这块呢,我需要借助于JS导入query script sc。导入j query这个库呢,我已经准备好了哈,直接复制过来。Scripts copy。瞎编的。他。好的,Script,我们先来试验一下这个j query是不是导进来了?Function,注意alert hello,接query进来了吗?
03:15
试试。走。刷新。哎哟。哎哟,我并没有看到那个hello被打印对吧。什么问题呢?我们看诶就是这个嘛,是吧,我把这个跑一下,我们看能不能给他获取着。这样写吧。404。很烦躁的一件事情,这也是我们这节课需要跟大家交代的,特别需要注意的一点叫处理静态资源。Spring mvc处理静态资源,为什么会有这回事儿呢?因为我们在WEB2文件里面进行映射的时候呢,我这个spring它拦截了所有请求是吧?这样的话呢,即便是我这样的一个JS,它也被spring Mac拦截了,而。
04:26
这个实际上我还没有映射过,我们可以看一下这块这个警告,你看他说什么呀,对于这样的一个UI我没有映射过,那我就给你一个404,而对于这样的UI是不需要进行映射的,你就得直接给我。是吧,你就得直接给我,那这个时候的话呢,就有了这样的一个问题,我们如何来解决它。PPT看一眼处理静态资源。首先,我们需要知道为什么会有这个问题。
05:02
过来。那为什么会有这样的问题,这个呢,刚才我们已经说了是吧,说优雅的rest风格,不希望我们这个映射带一个后缀,那么这个时候我们这个dispe so,请求行车的这个路径呢,就是斜杠拦截所有资源。包括静态资源,什么叫静态资源呢?像我要请求的图片啊,GS啊,CSS啊,就是静态资源是不是VC吧。还确实是没有进行映射,那这个时候的话呢,找不着他不就出错了。出错了好了,如何解决呢,解决。一种方式就是哦,你让我们这个VC处理带有后缀的这样的请求就可以解决,但我们这块提到了优雅的rest风格,不希望在这个后缀,那于是呢,解决方案就是我们去配一个。
06:13
MVC。Default。配着他就可以了。在spring mvc的的配置文件中配置它。Mvc default handler default service handler就可以,我们先来看一下效果。配置文件找着OK写一个叫什么呀,叫MVC。Default handler,看效果。
07:04
走起。刷这个JS。这个时候这个GS呢,能获取到不错吧。哎,Hello,杰瑞,哎哟。Hello,这块就不好使了,看到了吗?啊hello,解块就不好使,这个页面都没行,但是啊,这个JS是可以获取的,诶这个不好用了,我们还记得我们在。这个上几节课我们讲过一个什么呀,就直接连到某一个页面,我们写过一个什么东西呢?我们写过一个叫MVCMVC什么view controller,写完这个之后呢,我们以前的request mapping也不好用了,这个时候我们需要配一个什么东西来着,叫mvc drive,好再次把他请上来。
08:04
这个呀,我们后边解释好吧,这个后解释,我们先来说这个mvc default handler,先试一下好不好用这来说它。保存,走起。刷新。好好的吧,静态资源解决了以前的也是好的,这里我们来说一下这个叫什么,在这。哦,这在这儿是吧,这个呃,Default handle会起一个什么作用。其实大家能想到是吧,诶这个时候呢,VC会智能的判断你发的这个请求是不是被。Spring VC映射过,如果映射过的话,OK spring VC把结果给你,如果没映射过的话。Ivc会去帮你找那个目标资源。
09:02
所以说这个时候大家往这看,往这看,我即便是写个emp这样。他不会再发那个警告了,说我这个请求没有被映射过,而是一个404看到了吧,诶,这就是差别。回来好了,那具体交给谁干了呢?他交给了。我们tomcat里边那个默认的,我们找一下tomcat服务器,我的tomcat服务器呢,在D盘Java打开。Config WEF文件右键。打开诶,这里边有一个处理静态资源的default,这个它处理了看到了吧。好的,这段话我来复制一下。CRC。
10:02
这个mvc default handler。哎,将在Mac上下文去定义一个default http request handler,它会对进入到V请求进行筛选,如果发现这个请求是没有经过映射的,这个时候呢,就把它交给外部应用配置的这个默认来处理。如果不是静态资源请求的话,给他,换句话说,如果怎么了,如果你这个请求是映射过的,推给他,所以说这个时候嗯,我们再也看不到我们那个什么呀,叫那个警告,叫没有那个映射的UI,那个警告没有了,好的,那一般web服务器默认配的这个service的名啊,都叫devot,所以说。我们就不需要去配这个属性了,如果你要是配的话,也有有一个属性它叫什么呀。
11:07
哦,这个不对哈,哦,没在这个里边,那你在哪个里边啊。在这个里面看它有一个什么default name,那这个只默认就是default,我们不用管它好吧,行了,这样的话呢,处理静态资源这个事儿就搞定了。就搞定了,这个GS能进来,但是还没完,你必须得保证这是一个。Post请求,那于是呢,我们来写个表单吧,Form action不用写。Method需要写post,然后input。什么呀?Hidden name_method给谁用的?是不是给我们这个filter用的呀?因为我这个在进行获取请求参数的时候,要求这个请求参数必须是下划线,Method好的,我要求你是一个delete请求,Delete好的,我们希望的呢,写个点吧。
12:28
写个点应该是什么呀?Class delete,哎,所有的delete delete.delete function先return。然后我需要让。Form只有一个哈,我需要让form的action是谁呢?是他的craft craft属性是吧?
13:11
交上来,然后我提交这个表单就可以了,写完。再看效果。走O。嗯。刷新好删除。哎哟,Delete。看错了哈,Delete哪块写错了啊。Delete看到了吧,好回退刷新再看,诶这样一个一个就删除了啊,没有任何员工信息看到了吧,那我发的请求就是一个delete请求,实际上是一个post请求,是靠我们这个filter给它转为了。
14:01
Delete请求是吧,OK,做一个小结,这里边儿的东西呢,有一些啊,目标handler。不是太难写是吧?哎,确定这是一个比例的请求,然后呢,这块通过占位符的方式来写这个ID,用pass variable把它映射过来,执行一个删除,搞一个重镜像。这个不难写好页面上啊,麻烦一点,页面上搞的第一件事情就是,诶,会有一个静态资源的问题,我们需要去配mvc default handler,同时还需要去配。Mvc notation drive,否则光配了这个的话,他要是不配的话,以前的request mapping就不好用了,听到了吧。好的,然后再回来,我们需要把这个。GA的请求转为一个。
15:00
Delete的请求,那首先你需要确定这是一个post请求,于是的话呢,我们写了一个form,然后通过GS的方式。我让这个form提交,从而这提交的就是一个post请求,我在使用下划线method这个隐藏域告诉我们的hidden http method filter,这是一个第请求,一转的话就发到了我的目标handle,然后就可以执行这个操作了,对吧?好的,那这个删除呢就OK了。
我来说两句