自定义视图解析器及执行流程
2025-4-20
| 2025-4-20
Words 887Read Time 3 min
type
status
date
slug
summary
tags
category
icon
password

原生视图解析器

默认情况下,返回的视图都是由springmvc的InternalResourceViewResolver视图解析器处理的。需要配置一下前缀和后缀
notion image
image-20230321163806594
根据上图可以看到,分发器调用视图解析器,返回view,如果配置了多个视图解析器,那么会依次进行调用,一旦成功,就会返回view。

自定义视图解析器

分析

MyView继承了AbstractView, 就可以作为一个视图解析器使用
当需要使用我们自己的视图解析器的时候,需要配置下面的解析器,专门用来解析我们自己的视图解析器,现在就有两个解析器了,一个是默认的,一个是用来解析自定义解析器的。
设置order属性,就可以先执行哪个解析器,默认执行顺序是最低的,调整了order。

测试自定义视图解析器

notion image
image-20230321173332167
说明可以进入自定义视图,自定义视图里面又重定向到了我们自己的view。

默认自定义视图执行步骤

调整自定义视图执行优先级
可以看到进入了自定义视图解析器,调用了buildView,并且返回了一个对象,里面包含了调用路径。
notion image
image-20230321180357205

多个视图解析器执行流程

调整自定义视图解析器先执行
notion image
image-20230321182243882
继续下一步
notion image
image-20230321182606751

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

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