- bean id为
defaultViewResolver
的InternalResourceViewResolver
,它会定位可以使用渲染的物理资源(比如静态资源和JSP页面)。它在视图名上应用了一个前缀和后缀(默认都为空,但你可以通过spring.view.prefix
和spring.view.suffix
设置),然后查找在servlet上下文中具有该路径的物理资源,可以通过提供相同类型的bean覆盖它。 - id为
viewResolver
的ContentNegotiatingViewResolver
,它只会在实际View
类型的beans出现时添加。这是一个’master’解析器,它的职责会代理给其他解析器,它会尝试找到客户端发送的一个匹配’Accept’的HTTP头部。这有一篇关于的博客,你也可以也查看下源码。通过定义一个名叫’viewResolver’的bean,你可以关闭自动配置的ContentNegotiatingViewResolver
。 - 如果使用FreeMarker,你将有一个id为
freeMarkerViewResolver
的FreeMarkerViewResolver
,它会使用加前缀和后缀(外部配置为spring.freemarker.prefix
和spring.freemarker.suffix
,对应的默认值为空和’.ftl’)的视图名从加载路径(外部配置为spring.freemarker.templateLoaderPath
,默认为’classpath:/templates/‘)下查找资源。你可以通过提供相同名称的bean来覆盖它。 - 如果使用Velocity,你将有一个id为
velocityViewResolver
的VelocityViewResolver
,它会使用加前缀和后缀(外部属性为spring.velocity.prefix
和,对应的默认值为空和’.vm’)的视图名从加载路径(外部属性为spring.velocity.resourceLoaderPath
,默认为’classpath:/templates/‘)下查找资源。你可以通过提供相同名称的bean来覆盖它。