00:00
好,然后下面呢,那我们来看一下SPAVC支持路径中的占位符,那这个是什么意思,大家注意这个主要是然后在我们的restful风格里面,然后咱们会用到,所以说在这呢,因为它也是针对于咱们的什么request mapping注解的什么属性,Value属性,所以说咱们在这直接跟大家说一下OK吧,好,那其实呢,在咱们今天在讲的过程中啊,我也简单跟大家介绍过,就是咱们的rest该如何去实现,其实就是通过咱们相同的一个访问地址请求路径,然后不同的请求方式让它对应不同的功能,大家说是不是呀,嗯,是不是是吧,好,然后呢,所以说呢,大家来看一下我们原始的方式,我们可能需要这样去传值,就比如说呀。我们现在要来实现一个删除用户信息的功能,那我们就需要通过问号传参,然后将咱们的ID传输过去,对不对,对吧,那在咱们的rest方式里面呢,然后咱们在这咱们就不会通过问号。
01:05
不会通过问号传三了,当然大家注意啊,这是咱们的两种方式,是不是说我们学了rest之后,咱们以后就再也不会用问号传三了,是不是?不是啊,就是在这又新学习了一种方式,你用这个也行,你用这个也行,如果我们以后咱们是按照restful的风格来写的话,那我们最好是用这种方式能听懂吧,那为什么咱们在restful里面这样去写呢?就是在restful里边,我们需要将我们当前所访问的这些资源,用我们当前的路径把它给表示出来,用请求路径把给表示出来,你就比如说你看我们原来呢。然后我们在写的时候,可能我们的这个请求路径一般情况下都是用一个单词去写的,对不对,像什么啊,比如说我现在我要来use,然后spring,什么spring mvc,然后去访问,然后对吧,然后这个to,然后到我们的什么啊,访问咱们的spring VC,然后到我们的这个控制器里面,比如说到我们的这个这个控制器,然后con,咱们这样去写,用咱们的一个单词去写,对不对,对吧,然后但是呢,现在在rest里面呢,咱们就要通过什么,就是我们用咱们当前的请求路径来表示你到底要怎么去访问这个资源,你到底要访问什么资源,你能听懂吗?就比如说来大家看好怎么写,然后我们的每一个单词之间,大家就可以干嘛了,用我们当前的一个斜线来进行表示,然后斜线,然后在这咱们。
02:50
来写一个tool,然后在这咱们再来写一个斜线,这个地方是咱们的controller,能看懂不?啊,就这样去写,通过我们当前的路径,咱们就能够看出来,就能够来表示我当前的这个请求需要来访问的资源是什么,它要如何来对资源进行操作,能听懂吧?哎,行这样的啊,当然了,它也需要咱们光通过一个请求地址行不行?不行,还需要加上我们当前的请求方式,咱们说了常用的get post put delete get表示查询,Put表示修改,Post表示添加,然后delete表示删除,OK吧,所以说请求地址来体现我们当前要操作的资源,而请求方式来表示我们当前操作资源的方式,OK吧,好啊,想想这样的好,那如果我们现在咱们还需要去传输一些其他参数的话,咱们应该怎么传呢。那原来大家就。
03:50
问号传参呗,对不对,对吧,那现在咱们就可以怎么办?把咱们当前需要传输的参数全部都以路径的方式传输,能听懂吧?比如说我要来删除的是ID为一的用户信息,大家直接在这写个一能看懂吧,你要再往后边传,比如说me,那大家就继续往后边去写,能看懂吗?
04:13
能看懂吧,好,就这样,就将我们当前传输到服务器中的请求参数全部都以什么请求路径的方式,然后拼接在咱们的路径中,OK吧,来选啊好,然后下面呢,那咱们再往下看,来那大家看这就是我们rest里面的一种方式,咱们同样叫做delete user,但是咱们还用问号传参吗?不用了,然后我们在这咱们就用啥,就直接将我们的这个一啊作为我们路径中的一部分,能听懂吧啊,然后中间用什么分隔斜线进行分割,OK吧,哎,行这样啊,好,那大家想,那现在问题来了呀,比如说来我们来找到我们当前咱们的这个位置,然后我们在这咱们来写一个叫做test pass的请求路径,可不可以啊,可以吧,然后呢,那我们在这个地方,咱们是来测试request mapping,然后可以。
05:13
会使用什么可以。可以使用路径中的占位符,支持路径中的占位符,哎,能看懂吗?哎,然后支持路径中的占位符,好,然后在这个地方咱们所发送的请求是test pass OK吧,来好啊,行,下面呢,我们就来写一下,大家说现在那我们还能通过这种方式传嘛,可以,那只不过就是我们现在咱们是不是要换一种方式,然后在咱们的rest里面来使用,对不对,对吧?那咱们怎么写一个斜线,然后后边来写个一,这个一就是我们传输到服务器中的数据,能听懂吧,请求参数,好,那关键问题来了,大家想这个一跟咱们的问号传参它俩是不是好像有点区别,你看咱们的问号传参,不管咱们用的是get啊,还是咱们的post,咱们之前传输请求参数的方式,咱们传输过去的是不是都有name?
06:16
O value流,所以说我们可以通过内膜获取value流,大家说对不对,对吧,但是呢,咱们现在大家来看,我们在这儿咱们传过去的是不是直接就是一个值呀,那这个值咱们应该怎么来获取呢?因为它是路径中的一部分,那咱们怎么就知道哪一层目录对应的是一个值呢?大家说是不是啊是吧,好,所以说在这咱们怎么写,大家注意啊,来找到我们的控制器,然后来写一个方法request mapping,然后双引号斜线,在这是不是叫做test pass呀,然后又一个斜线,这是不是一个一对不对,好,Public返回一个string,叫做test pass括号,大括号,然后我们在这个地方呢,只需要来返回一个success就行,能看懂吗?那咱们现在要做的问要实现的功能是不是就是怎么来获取咱们请求路径中的这个一对不对,怎么来获取呢?大家注意。
07:16
先把我们当前的请求地址呀复制过来,然后呢,在我们当前咱们的这个表示请求参数的这一层目录里面干什么?看好用一个大括号,然后来表示当前咱们的这个什么表示我们当前的参数,这就叫做占位符,能听懂不?咱们刚才所讲的不就是request mapping来支持路径中的占位符吗?是不是,是吧,所以说这个东西就是占位符来表示我们当前咱们路径中的这个一能听懂吧,能听懂吧,好,OK,那咱们给它起个名字叫啥叫ID。能看懂吧,哎,是这样去写的,好,然后这个时候大家想,那我们是不是还要把这个占位符ID的值获取到,因为这个时候这个ID所表示的就是咱们路径中的这个一是不是怎么来获取啊看好在这咱们需要用到一个注解,什么注解呢?叫做pass variable,叫做pass variable写在哪?写在我们当前这个方法的参数位置,好然后叫做pass variable,然后括号中咱们必须要设置它的value属性,OK吧,好,它的value流属性是谁,就是ID,然后这个时候大家看我是把当前的这一个注解是不是写在了我们当前的参数位置,对不对,对吧?那所以说那参数位置,那这个注解是不是就是用来修饰我们当前的一个形参的,大家说是不是啊,对吧,你看看自己看看这个注解。
08:59
只能修饰谁只能修饰我们当前的parameter,也就是参数,对不对,对吧?所以说咱们需要把它给用在这个地方,然后让它修饰我们当前的参数,那就修饰一个行参呗,可不可以啊,可不可以啊,可以吧,好,那这个时候就是什么意思啊,它可以将我们当前占位符中的ID所表示的值,然后自动赋值给咱们的行参,ID能听懂不?好,下面so,然后ID输出一下ID冒号加上ID能看懂吗?记住这是一个重点啊,在咱们的rest里面用的非常的多,知道吧?啊,用的非常的多啊好,下面呢,我们在这咱们来重新部署一下。
09:51
好,来。好,下面咱们来刷新,大家看点击好使不跳过来了吧,然后大家看ID冒号一好使不好使没问题吧,好啊,那大家说如果我在这儿,我要是不传这个斜线一。
10:13
大家说它能匹配吗?啊,如果我在这写了一个test pass,我没有写斜线一,那大家说这个时候它还能匹配吗?能匹配不能啊,那既然是我们的request的value里面,在咱们的斜线后边又用了一个占位符,那就说明我们当前咱们的占位符所表示的是不是必定是有一个值的对不对,对吧?所以说大家看我现在来一个回车,直接404能看懂不说明什么,说明我们当前的请求路径是不是根本就不能去匹配咱们的请求映射的Y6属性对不对,对吧?所以说如果我们用占位符来表示了咱们的路径中有占位符,那我们所匹配的请求地址中也必须要有这一层路径能听懂吧?
11:09
能听懂吗?好OK啊,那如果我在这写个斜线呢。我写个斜线后边就是我的ID,我就没有传是不是啊,那是这个意思吗?来咱们一个回车,大家看咋的,还是404好使不好使啊,不好使啊,为啥你说你这样访问的时候,那这相当于啥?这相当于后边有东西吗?没有任何东西嘛,对不对,对吧?所以说大家注意,你这样去访问跟咱们这样去访问一样不一样一样的是不是啊,所以说大家注意啊,如果我们用的是占位符,那大家在发送的这个请求的时候,这个请求地址必须要和我们的value进行匹配,OK吧,有占位符,那咱们的请求地址中也必须要有这一层,能听懂吧,能听懂吧,好啊,行,这样啊。
12:04
好,然后这个是我们当前SPAVC,然后支持路径中的占位符,大家注意这个非常重要,咱们在我们的rest里面用的还是非常多的,知道吧啊,用的非常多啊,而我们获取占位符的方式也非常的单一,听好了啊,我们获取占位符的这个所对应的值,然后也比较的单一,大家只能通过什么获取啊,你只能通过it pass variable这个注解获取,OK吧,只能通过它将我们的占位符所代表的值跟我们的行参进行绑定,能听懂不?然后这个时候当我们的程序解析之后,就会将我们占位符所对应的值赋值给它所对应的形参,OK吧,那如果说咱们现在有多个呢?比如说我在这传了一个一,我又传了一个a me这个东西该怎么写啊?
13:00
大家说一样不,你写一层是这回事儿,你再写一层,一个大括号username,大家说好使不好使啊,好使不好使。这应该没问题吧,是不是啊,好,然后在这,那我们是不是还需要再写一个pass variable,然后括号里面,然后来写一个user name,然后这是4g userna userna能看懂吧?好,在这呢,我们来说出双引号逗号username,冒号加上加上username OK来咱们来测试一下,大家说没问题吧,是不是啊,那咱们的路径是一层一层去匹配的,那所以说我们的ID占位符对应的就是一,咱们的user name占位符对应的就是好的,是不是很好啊,行来下面咱们再往下看,来我们在这咱们来访问首页,然后来选择咱们的最后一个,大家看成功了吧,是不是啊,然后咱们来看咱们的最后来输出的这个内容,大家看有没有九好,所以说呢,这个就是。
14:11
我们支持路径中的占位数,再说一遍是重点,大家需要好好的练习一下,OK吧啊。
我来说两句