type
status
date
slug
summary
tags
category
icon
password
原生视图解析器
默认情况下,返回的视图都是由springmvc的InternalResourceViewResolver视图解析器处理的。需要配置一下前缀和后缀

image-20230321163806594
根据上图可以看到,分发器调用视图解析器,返回view,如果配置了多个视图解析器,那么会依次进行调用,一旦成功,就会返回view。
自定义视图解析器
分析
MyView继承了AbstractView, 就可以作为一个视图解析器使用
当需要使用我们自己的视图解析器的时候,需要配置下面的解析器,专门用来解析我们自己的视图解析器,现在就有两个解析器了,一个是默认的,一个是用来解析自定义解析器的。
设置order属性,就可以先执行哪个解析器,默认执行顺序是最低的,调整了order。
测试自定义视图解析器

image-20230321173332167
说明可以进入自定义视图,自定义视图里面又重定向到了我们自己的view。
默认自定义视图执行步骤
调整自定义视图执行优先级
可以看到进入了自定义视图解析器,调用了buildView,并且返回了一个对象,里面包含了调用路径。

image-20230321180357205
多个视图解析器执行流程
调整自定义视图解析器先执行

image-20230321182243882
继续下一步

image-20230321182606751
第二次循环,执行默认视图解析器

image-20230321182749556
如果先执行默认视图解析器,但是没有找到页面,会不会又去执行自定义视图解析器呢。
- 环境配置
- 默认视图解析器优先级调高。
- @Component(value = “liuViewX”) //这里暂时改为liuViewX,自定义视图找不到,会去找默认视图解析器,这个值调为正确值
结果发现即使没有找到对应的页面,但是也会直接返回,不会继续去执行自定义视图解析器。

image-20230321183719117