spring源码解析-web系列(一):启动
spring源码解析-web系列(二):处理请求的过程
spring源码解析-web系列(三):九大组件之HandlerMapping
spring源码解析-web系列(四):九大组件之HandlerAdapter
spring源码解析-web系列(五):解析请求参数
spring源码解析-web系列(六):九大组件之ViewResolver
spring源码解析-web系列(七):九大组件之HandlerExceptionResolver
转载请标明出处:
https://blog.csdn.net/bingospunky/article/details/98622667
本文出自马彬彬的博客
前言
ViewResolver的作用是通过ViewName获取到View,从而可以渲染结果。ViewResolver的接口定义如下:
代码1 (org.springframework.web.servlet.ViewResolver):
public interface ViewResolver {
View resolveViewName(String var1, Locale var2) throws Exception;
}
ViewResolver的子类可以分为如下四类:
1.AbstractCachingViewResolver:提供了抽象缓存的能力,当缓存里不存在时,通过模板方法让子类创建。
2.BeanNameViewResolver:通过name去BeanFactory获取对象。简单至极,不予描述。
3.ContentNegotiatingViewResolver:内部分装了一些ViewResolver,具体工作通过内部封装的ViewResolver获取View,当获取到多个View时,该类通过MediaTypes(Content-type)选出一个最合适的View。
4.ViewResolverComposite:内部封装了一些ViewResolver,自己不干活,通过内部的ViewR