00:00
好,那下面呢,我们再来看咱们的第二个视图啊,叫做转发视图,但是这个转发视图其实咱们用的并不多,为什么呢?下面大家来看一下啊,然后其实我们之前咱们给大家演示的这个CF view,大家会发现它也是转发的效果。对吧,那我们现在呢,咱们所创建的这个转发视图,它也是转发的效果,那它俩有什么区别呢?来大家看啊,For word,哎,咱们这就是我们当前的请求路径,然后我们要来测试的这个视图,大家看好,这个转发视图它具体叫什么?它叫做internal resource view,大家注意,叫做网络资源视图啊,好,然后我们现在呢,然后咱们把咱们的这个路径复制一下,然后咱们来处理一下当前的请求,It request mapping,好,这是我们的请求路径,然后下面public,比如说咱们返回的也是street,这个咱们叫做test internal resource view OK,行,然后我们直接来返回一个字符串,大家注意啊,好,那我们在这要想创建一个转发视图的话,我们应该怎么创建,大家注意,我们当才从咱们的源码里面,咱们就已经知道了,对吧,然后我们当前咱们来创建一个视图,它只跟谁有关系,他只跟我们当前。
01:17
咱们的视图名称有关系,也就是说它只跟我们当前这个方法的返回值有关系,就比如说我们说了你没有任何的前缀,你创建出来的这一个你返回的视图名称会被咱们的这个SIM Le view overver来解析,最终咱们创建的视图叫做cli view,而我们当前要想创建一个转发视图的话,大家注意是这样的啊,我们需要加上一个前缀叫for forward问号。然后在这咱们就可以转发到另外一个请求了,比如说咱们随便来找一个啊,咱们的test scope control,咱们就把它给转发到这儿吧,行吧,转发到我们当前的这个请求,然后下面呢,咱们直接把这个路径给写过来就行。
02:00
这个大家能看懂吧,就相当于request get request dispat括号,然后里面写了一个这样的路径,然后点forward request response。原生的大家还有印象吧,哎,大家注意,其实就相当于这样的一个效果啊好,那现在呢,咱们在这来打一个断点。好,打完断点之后,咱们再来重新部署,然后咱们来测试一下,大家看这个时候他来创建的这个视图是什么啊。行,然后我们现在咱们首先先来访问我们的首页,然后来F9跳过,然后下面呢,我们来点击咱们的这个超链接,大家注意,然后来点击大家看,哎,现在是不是就跳转到我们当前的一个断点断点的位置了,对吧?好,然后还是1061行调用我们的控制器方法,然后咱们跳过之后进入到控制器方法中,然后再跳过,然后走到咱们的这一行代码来执行我们当前的转发结果,然后下面呢,咱们再来跳过,大家注意走到这一行,这一行是什么意思,叫做渲染,渲染视图来处理咱们的model and view,对吧?好,那我们现在咱们进入到这个方法中,然后大家注意咱们是不是又又走到这儿了,然后下面咱们继续再往下执行,大家看是不是又创建了一个view对象,然后通过我们当前咱们的这个视图名称是不是来获得一个视图对象,对不对,大家看这个时候我们的视图名称是不是叫forward冒号,然后斜线test,斜线model,然后我们。
03:31
再往下走,大家注意,再往下直行直行大家看。你看我们现在咱们创建的视图是什么?大家看一下啊,鼠标放上去是不是叫做internal resource view,叫做网络资源视图,这个就是我们当前的一个转发视图,大家注意啊,好,然后那我们现在是把它转发到哪了,把它给转发到了我们当前的test斜线test斜线model,那所以说我们现在把当前的这一个断点跳过之后,大家说它会怎么办,它会重新进入到我们当前的断点中,为什么呢?因为我们是把它给转发到另外一个请求中了,对不对?所以说这个请求也就是咱们的test model,然后这个请求它是不是下面也会被我们的dispatch继续进行处理,所以在这个过程中,它是会创建几个视图的,两个视图首先先创建咱们的internal resource view,因为咱们的视图名称有一个前缀叫做forward,所以说在这创建的是这个视图,然后创建完它之后,然后我们要实现转发效果,咱们转发到这一个路径,那大家说那。
04:35
不就相当于在服务器内部重新来访问了我们的test model吗?这个对不对?好,所以说你看现在跳过之后,你看又进入到了我们的1061行对不对。好,下面咱们再跳过,再跳过这个时候他大家想一下,这个时候他创建的视图是什么啊,现在咱们的这个视图名称是不是应该是谁呀?咱们当前的请求路径是CA的model,也就是说我们现在咱们转发到了这个请求中,那我们当前所设置的视图名称是不是success。
05:06
对不对,所以说我们现在咱们再继续往下执行的时候,大家注意咱们创建出来的视图就又变成谁了。View了,大家看是不是啊。对吧,好,这个大家注意啊。行,那这就是我们当前咱们讲的第二种视图对象,叫做internal resource view,但是这个东西我也跟大家说了,咱们以后用的并不多,为什么咱们用的并不多呢?因为大家注意,这就是转发,这实现的也是转发,对不对?而且咱们从咱们的页面中咱们就能够看出来,大家注意,你看我们当前呢,然后咱们的路径是没有任何变化的,我们当前所访问的路径还是我们当前的test view forward,但是我们现在咱们的这个页面,大家看这是怎么跳过来的呀?是我们从这个请求中转发到了咱们的斜线test,斜线model,然后又从我们的斜线test,斜线model这个请求处理完之后,往咱们的请求域中去放了一个共享数据,然后又转发到了我们当前的success的HTML,对不对?所以说大家看这就是一个转发的效果,咱们的地址栏里面是没有发生任何变化,如果要是重定向,这里面的地址应该是test斜线model能听懂吧,好啊。
06:21
行,那为什么这个东西咱们用的不多,这两个都是转发,那我们以后肯定是用谁呀,通过咱们的CMA live,咱们以后用的最多的肯定是咱们的STEM view,为什么大家注意你用它来实现转发的时候,它就是一个单纯的转发效果,虽然说我们通过它确实可以来访问到咱们web info下面的某个页面,但是你要注意这个时候的这个页面是直接从服务器跳转到这个页面的,而我们当前咱们的页面里面,咱们用的是不是有c Le的语法呀,对不对,对吧?所以说你要想这个东西被解析的话,我们并不是要直接跳转到这个页面的,我们还需要通过我们的STEM lef的c lef的视图解析器来解析我们当前的这个视图,你才能去解析我们当前咱们页面中c Le的语法,才能去渲染页面。
07:13
然后看到一个动态数据。这个大家能听懂不,也就相当于说你用这种方式来跳转到转发到某个页面的时候,它是会这个页面是会被咱们的c Le进行渲染的。然后而我们通过这种方式转发到咱们这个页面的时候,它就是一个简单的转发,它会不会被SIM live进行渲染,大家注意并不会,所以说啊,大家一定要看好了,我们当前这两种都是转发视图的情况下,我们用的最多的是谁?肯定是咱们的c live view,因为我们现在是以c lef来作为视图技术的,对不对,对吧,那所以说。我们现在在页面中用到的SIM life的语法,你要想看到SIM life的语法被解析来进行页面渲染,那我们就必须得通过我们的SIM。你看咱们在配置文件中配置的视图解析器。
08:04
能看懂吧,咱们必须得通过这个视图解析器解析来渲染页面之后大家才能看到动态数据,所以说呢,大家注意啊,这种方式我们现在在我们CF来作为试图渲染技术的这个环境中,我们基本上是不用这个的。因为它也是转发,它也是转发,而且他转发之后这个页面对吧,可以被c live进行渲染,但是你通过这种转发来跳转到这个页面之后,它是没有办法进行渲染的。OK吧,啊,这个大家注意,这个知道就行啊,但是其实如果大家现在用的是GSP的话,用的是GSP这种视图的话,大家注意其实我们用的我们需要来创建的一个视图解析器就不一样了啊,比如说我在这简单给大家写一下,大家看一下就行啊,然后在这咱们需要设置一个并标签它的class,等于谁看好了,叫做internal resource view internal resource view,大家注意就这个东西。
09:01
就这个东西,如果我们现在咱们用的是谁啊?如果我们现在咱们用的是这个GSP来作为视图的,我们现在需要在配置文件中所配置的视图解析器就是internal resource view,而我们创建的转发视图,大家注意它也是resource view,只不过是我们现在用的是谁做的视图技术,用的SIM Le做的视图技术,我们的页面不单是要进行一个简单的转发,我们还需要通过咱们的SIM Le去渲染页面,所以说咱们现在如果他们两个都是转发的情况下,我们上面这个用的一定是最多的,OK吧,这个咱们基本上就不用了。OK吧,啊,为什么?大家自己想一下啊,然后通过他转发到的页面是可以进行页面渲染的,但是通过我们下面的这种方式来实现的页面跳转,大家注意它只能实现一个简单的转发,至于咱们页面中的C的语法会被解析吗?解析不了啊,行,OK,那这是我们当前的第二种视图。
10:02
叫做internal resource view啊,这也是一种转发视图,但是我们这两种,你看similarli view也是转发视图,然后咱们的这个internal resource view也是转发视图,相比较而言,当我们以C作为视图渲染技术的时候,咱们以后用的最多的就是这个啊,好OK。
我来说两句