资讯专栏INFORMATION COLUMN

6.2、串连ViewResolver(Chaining ViewResolvers)

wums / 762人阅读

摘要:如果一个视图解析器没有找到视图,就会检查上下文中的其他视图解析器。视图解析器约定指出,一个视图可以返回来指定找不到的视图。这中情况在和其他视图中也存在。所以,把放在链中的某个地方而不是最后,因为总会返回一个视图

  Spring 支持多个视图解析器。因此,你可以串连解析器,并且在特定的情况下重写指定视图。你可以通过在应用程序上下文中添加多个视图解析器来把它们串连起来,并且如果有必要的话,也可以设置 order 属性来指定顺序。注意,order 属性值越大,视图解析器在链中的位置越靠后。

  在下面的例子中,视图解析器链由两个解析器组成:InternalResourceViewResolver 永远都被自动放到解析器链的末端;XmlViewResolver 用于指定 Excel 视图。InternalResourceViewResolver 不支持 Excel 视图。


    
    
    



    
    



    

  如果一个视图解析器没有找到视图,Spring 就会检查上下文中的其他视图解析器。如果有其他视图解析器存在,继续用它们寻找视图,直到找到一个视图位置。如果最终也找不到视图,Spring 会抛出一个 ServletException。

  视图解析器约定指出,一个视图可以返回 null 来指定找不到的视图。不是所有的视图解析器都这么做,因为在一些情况下,视图不能简单地检测视图是否存在。例如,InternalResourceViewResolver 在内部使用 RequestDispatcher,调度(dispatching)是计算 JSP 是否存在的唯一方法,但是这个动作只能执行一次。这中情况在 FreeMarkerViewResolver 和其他视图中也存在。可以在特定视图解析器的 JavaDoc 中查看它是否报告不存在的视图。所以,把 InternalResourceViewResolver 放在链中的某个地方而不是最后,因为 InternalResourceViewResolver 总会返回一个视图!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66076.html

相关文章

  • spring是如何加载可用的ViewResolver的?

    摘要:视图解析框架同其它框架一样,是请求驱动的,围绕中心设计的。中心会分配请求到各个,以及提供其它功能。有个接口对于处理视图来说是很重要的,一个是,另一个是。如果属性被设置为的话,就会触发从中加载所有基类为的,然后存入列表。 Spring Web MVC 视图解析 Spring web MVC 框架同其它web MVC 框架一样,是请求驱动的(request driven),围绕中心Serv...

    yagami 评论0 收藏0
  • SpringMVC之源码分析--ViewResolver(一)

    摘要:概述本章开始进入另一重要的组件,即视图组件,处理视图组件使用两个主要的接口是和。接口的作用是用于处理视图进行渲染。延用之前的介绍流程,本章分两部分进行阐述启动初始化和请求处理。 概述 本章开始进入另一重要的组件,即视图组件,Spring MVC处理视图组件使用两个主要的接口是ViewResolver和View。根据名称可知,ViewResolver即视图解析器,其作用是把逻辑视图名称解...

    pf_miles 评论0 收藏0
  • SpringMVC之源码分析--ViewResolver(四)

    摘要:概述本章继续学习另一个实现类解析器,该类的主要作用是根据同一请求的某些策略,选择对应的进行渲染。可以把理解为适配器,对不同类型进行适配。值得注意的是处理的为同一个。本系列文章是基于。实战需求目标实现后缀名或参数控制,显示不同的视图。 概述 本章继续学习ViewResolver另一个实现类ContentNegotiatingViewResolver解析器,该类的主要作用是根据同一请求的某...

    jcc 评论0 收藏0
  • SpringMVC之源码分析--ViewResolver(三)

    摘要:概述本节学习下的功能,简单来说,该类的作用就是把多个视图解析器进行组装,内部使用存储配置使用的视图解析器。总结本章介绍了类,根据测试,了解到属性不影响中配置使用的视图解析器顺序。 概述 本节学习下ViewResolverComposite的功能,简单来说,该类的作用就是把多个ViewResolver视图解析器进行组装,内部使用list存储配置使用的视图解析器。 本系列文章是基于Spri...

    fox_soyoung 评论0 收藏0
  • SpringMVC之源码分析--ViewResolver(二)

    摘要:概述上篇学习了视图解析器作用及处理流程,为我们提供了丰富的视图解析器见下图本系列文章是基于。该视图解析器是根据处理器返回的逻辑视图名称,在应用上下文中查找该名称的视图对象视图对象就是的对象。 概述 上篇学习了Spring MVC ViewResolver视图解析器作用及处理流程,Spring为我们提供了丰富的视图解析器(见下图):showImg(https://segmentfault...

    jas0n 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<