00:00
好,然后呢,我们在之前呢,然后咱们的这个SPAVC中呢,然后咱们所使用的视图解析器是不是应该都是这个c view对吧,因为我们现在所使用的视图技术呢,就是SIM这个视图技术。那其实在之前呢。然后我们一直用的是GSP,那对于GSP咱们spring VC该如何进行访问呢?就是也就是说如果我们的视图咱们所使用的是GSP,那我们的SPVC该如何去解析我们的GSP的这个视图啊啊,然后咱们把这些东西啊,然后我给它关掉好啊,然后呢,咱们先把这个工程啊,然后给停了,然后下面咱们是不是再来创建一个工程吧,行不行,行吧,因为咱们的配置文件要改啊,咱们把这些东西跟复制的都给它复制过来,咱们快速的创建一个工程啊,首先咱们这个就叫做spring mvc,然后杠GSP可不可以啊,可以吧,好啊,来在这咱们也是com.at归博点MVC。
01:04
是不是好,然后咱们把这些东西该复制的都复制过来,比如说啊,这个就不用复制了啊,然后先把咱们的工程是不是来设置为一个外部工程,还有就是咱们的依赖对不对,然后把咱们的打包方式,然后以及咱们的各个依赖啊,然后都复制过来,SIM if,当然你复制过来也行,那咱们不用它也不会影响什么,知道吧?啊,因为咱们也说了,只要我们当前咱们的视图啊,然后呢,返回的没有任何的前缀,然后它就会被我们的cli的视图解析器解析,但是前提是你配置的视图解析器是c live view over,能听懂吧,好。行来,那咱们把它给复制过来啊,好,OK,完事,然后下面呢,咱们再来找到我们的项目结构,然后来找到我们的spring VC,然后杠GSP,然后在这个地方,咱们没有这个web音符,没有没有这个web APP,直接在这写行不行也是可以的,知道吧,好,然后呢,咱们再来创建web,点叉苗,然后应该是src,然后下面的ma map,然后web APP,然后斜线能看懂吧,好,然后点击OK,然后点击apply,点击OK就可以了啊。
02:22
来大家看一下有没有了,是不是就有了,好啊,然后外部点XL,那咱们就选择复制吧,可不可以啊,可以吧,好啊,然后把咱们的这个过滤器啊,编码过滤器,还有咱们的这个注册solve,注册前端控制器的这个都给它复制过来啊好让那我们复制过来之后,然后呢,我们下一步咱们该干什么了?大家说we部的X描写完了,然后下面呢,我们是不是就可以去创建咱们的控制器方法了,对不对,对吧?啊,创建咱们的控制器了啊,首先com.at硅谷点MVc.con controller,然后再点,也就说就写个叫GSP controller可不可以啊,好啊,行,在这呢,咱们是不是就要加上注解啊,然后下面呢,咱们是不是要来创建它的配置文件,因为we部的XL中指定咱们的配置文件叫这个名字。
03:23
那所以说咱们直接在resource下边来创建我们当前的这个spring的配置文件就OK,能看懂吧,好,这里面要写的东西啊,就简单的多了,就比如说然后咱们先写一个come冒号,然后come,啊,Compund看,然后come.at v股点MVc.control OK吧,好,然后再往下咱们是不是就要配置视图解析器了,对不对,那这个视图解析器呢,就简单的多了啊,因为咱们说了,其实我们在咱们的surprise VC中,如果你用的是GST的话,因为我们不设置任何的前缀,它也是一个转发的效果,大家说对不对,对吧,这个没问题吧,它也是一个转发的效果,那所以说呢,那我们SPAVC中是不是有一个默认的转发视图叫做internal resource view是不是啊,是吧,所以说咱们只要在这来配置一个internal resource view就行,能看懂了。
04:23
啊,能看懂吧,叫internal resource view reserve就可以,能看懂吧,啊,行,OK,那我们下边咱们这里面大家看是不是有一个什么也是前缀,看到了没?然后value给它一个web杠杠in for,然后下面的咱们叫temps OK吧,好,然后再往下,那既然有前缀,那咱们肯定就有啥后缀,那这个后缀咱们还能写点HTML,不能咱们应该写的是点GSPOK吧,好,这个地方是不是少写一个斜线。
05:02
对不对,因为咱们最终是拼接之后来找到这个页面的,是不是啊,所以说你在这你不写斜线,那咱们的视图名称中是不是就要写斜线是不是啊。行,那咱们把这个配置完之后啊,然后下面呢,咱其实咱们就可以访问了,比如说那我们的GSP既然可以直接访问,那其实我们还需不需要再来设置一个主页,来设置访问主页,访问首页的一个请求映射了,不需要咱们就可以直接去访问到这个GSP了,能听懂吧?好,咱们在这来写一个inex.GSP好,这个GSP页面呢,跟咱们的HTML页面呢,非常的像,然后但是大家会发现这上面有一行这个东西监括号百分号A,这个东西叫做GSP指令,来设置我们当前咱们页面中的一些信息,就比如说这是content type什么意思啊,内容格式,内容类型是以文本形式存在的什么HTML,而且这个东西是我们当前页面的一个编码,然后language是我们当前咱们的这个GSP所支持的语言,在这呢是Java那。
06:14
肯定是加了呀,对不对,但是其实啊,这个GSP中呢,然后来设置这个long格位置,主要是干什么的呢。这个GSP呢,然后希望啊,咱们的GSP页面中可以支持所有的语言,知道不?啊,可以支持所有的语言,但是呢,这个非常遗憾的事情,就是现在的GSP仍然是指支持加va,知道吧,哎,这样的啊,好,然后呢,咱们在这咱们写个H1,然后来写个首页就可以了,能看懂吧,来下面咱们是不是就可以访问一下了,对不对?来咱们来找到我们当前咱们的这个Tom cat,然后把我们当前这个工程给它删掉,然后咱们再重新添加一个GSPOK,好,然后把这个给改了,就叫spring可以吧,好,这个地方是选择第三个重新部署,这个是更新内核资源哦,来,OK就可以了啊来,咱们来启动一下。
07:09
那大家知道这个时候,咱们当我们的这个tomcat启动成功之后,咱们默认访问的是谁吗?大家知道吧。默认访问的就是index.gsp知道不?哎,选这个啊,那这个东西咱们是在哪设置的?大家知道不知道咱们的tomcat中是不是有一个web的X苗,然后呢,我们的这个当前的工程中是不是也有一个web的X苗,大家说是不是是吧?然后呢,咱们当前tomcat中的web点叉M苗是作用于我们部署到tomcat的所有工程有效的,对不对?而我们当前工程的web点叉L只针对于当前工程有效,能听懂吧?好,那所以说在咱们的tomcat的web.L中就配置了一个标签,然后这个标签呢,就是我们当前的一个欢迎页面列表,大家见过没有,见过没有,应该见过吧,然后就是这个标签啊,然后长的是这样的,叫做welcome fair list。
08:12
Welcome fairest能看懂吧,然后在这大家记不记得在咱们Tom cat的web点叉L中,这第一个叫index.hgml,第二个叫index.htm,最后一个叫做index.rgsp,有印象吧,所以说那这三个,这三个是不是应该是按照顺序去匹配的对不对?如果说能找到它后边这俩还找不找了,不找,如果能找到他就不找他了,如果能找到他对不对,那咱们就是以它为首页,OK吧,当然呢,是在它上面这个没有的情况下,是不是才会找他,对不对啊行,这个咱们不用写对吧,为什么?因为tomcat的web的叉苗中已经有了,那我们当前是不是就针对于我们部署的tomcat中所有的工程都有效是不是啊,啊行,大家看能访问不能啊,可以直接访问是不是啊,其实咱们当前其实这个东西就是index.gsp。
09:13
能看懂吧,好啊,行,然后呢,我们再来创建一个控制层,比如说我们在咱们的webport下边来创建一个目录,叫ts place,好,里面咱们来写一个页面,也是GSP,叫S,可不可以啊,可以吧,好,然后成功,OK,那我们现在要想跳转到这个页面,一样不一样,一样怎么写呀?啊,是不是也是request me括,然后我们现在要来访问的是sus,能看懂吗?然后在这一个public返回一个string,好,然后SUCS括号来吧,而且把它放进来是不是就可以了,对不对?然后咱们在index.gsp中是不是要来写个超链接,对不对?然后呢,这个超链接咱们要来访问的就是咱们的s.GSP。
10:13
那这个路径该怎么写呢?啊,路径该怎么写,咱们的SIM lifea在使用simli的时候,咱们用的是TH冒号h ref,然后里面用A的大括号,然后来对我们当前的路径是不是进行了包装,对不对,对吧?那在这个地方呢,大家注意啊,咱们就不需要了,因为本身在我们的GSP中,它就有能够这个使用我们的Java代码来获取一些数据的这个这个方法,就比如说呀,我们现在咱们直接在这写一个斜线,然后叫use success好使不好使啊,大家注意它不好使知道吧,哎,这是不好使的,为什么呢?因为这个路径大家注意是以斜线开头的,那所以说它是个绝对路径,而咱们超链接中所写的绝对路径是不是应该是由谁解析的浏览器解析的,那所以它是少一个上下文路径的,能听懂吧,能听懂吧,那所以咱们在这需要给它加上一。
11:13
的上下文路径怎么加?Similar life中你只要用it大括号包括一下就完事了,对不对?但是在这个地方呢,你怎么加呢?你不能把它写死,因为咱们的上下文路径是不是一直会发,是不是可能会发生变化,如果你写死了,那我们其他的地方咱们都要改,大家说是不是?所以说在这咱们要用一种动态获取的方式。大括号。还是多了大号,又是多少大括号对不对,对吧,然后再往下怎么写。啊,不知大家不知道没学过啊是吧?啊好,然后大家注意在这呢,这个page context,这就是我们最小的预对象,也就是那四大域对象里面,咱们没讲的那个,知道吧,知道吧,哎,然后这个就是咱们在这个范围是当前GSP页面的这个预对象啊叫做配置contextest,好,然后在它里面呢,然后有一个属性叫request,然后request中有一个性叫做context pass,大家用过没有,Request get context pass用过没有,获取上下的路径对不对?好但是呢,这个东西整体叫做EL表达式,然后在EL表达式里面,然后我们是要通过访问属性的方式来访问的,能听懂吧,那这个我也跟大家说过,什么是属性,大家说啥是属性啊,去找到get跟set方法,把get跟set方法名中的方这个get跟set去掉剩余。
12:46
部分的首字母变为小写,是不是就是属性名,对不对,对吧?好,所以大家想想,那在这我们的配context中有get request方法,那所以既然要以访问属性的方式来访问,那是不是应该就是点request属性对不对,对吧?当我们获得了request之后,那后边是不是还有一个get context pass方法,那我们以访问属性的方式来访问,那不就是context pass是不是,是不是,是啊,好,OK,然后这个是我们当前咱们的控制器方法,你看刷新就有了。
13:25
知道吧,这是什么功能,咱们在这是不是来设置了一个叫做当它失去焦点更新内核资源,知道吧,知道吧,好,然后咱们的GSP是能过自动更新的,但是咱们的SIM lef里面不行,那STEM leaf你只要改了内容,是不是就要经过s Le重新解析对不对,对吧?好啊,但是咱们的这个能访问到吗?访问不到啊,为啥呢?因为这是咱们的类,你改了类的话,那我们就必须得重新部署,知道吧啊。行,然后下面那我们再来刷新,大家看点击大家看好使不好使好使了啊,那这个时候大家想我们当前咱们在这儿所设置的视图名称是不是没有任何的前缀,对不对,对吧?那所以说它就会被谁解析啊,被咱们SPVC点叉L中的视图解析器解析,能听懂吧?然后呢,来加上前缀,然后再加上后缀,就是我们最终要转发到的页面,能听懂吗?哎,行,当然呢,咱们在这个地方咱们也可以来使用前缀,Forward的冒号和ready rap的冒号,但是在这种情况下,我们还会去创建s view吗?不会,我们在这个就是在我们当前这个spring VC工程的环境中,我们只会创建两种视图,一种就是咱们的转发视图internal resource view,还有一种就是咱们的重定项视图really view能听懂吧,能听懂吗?哎,好,那大家说什么时候创建。
14:58
练的是internal resource view,当你没有任何前缀和以forward冒号为前缀的时候,创建的是internal resource view能听懂吗?当咱们以ready rap冒号开头的时候,咱们创建的是什么?是ready rap,能听懂吗?
15:16
知道啥意思吧,那咱们刚才咱们来看这个创建internal resource view的时候,是不是要加前缀for冒号对不对,那我们现在没有加任何前缀,那它是不是应该是被咱们的internal resource view来解析,那所以说大家想,那这个视图解析器解析之后的视图是不是应该就是咱们的internal resource view能听懂吧?好啊,所以说在咱们当前的工程中,然后创建internal resource view的情况两种。一种是没有任何前缀的视图名称,第二种以forward冒号开头的视图名称,OK吧,创建重定向视图,还是那一种以ready RA的冒号排除的师徒名称,能听懂吧,好啊。
16:01
行,那别的就不说了吧,啊,这个就主要就是让大家看看它的区别,咱们用的什么不一样,其实也就一个啥不一样啊,视图解析器不一样,能听懂吧,哎,就一个视图解析器不一样啊。
我来说两句