Allow user to opt out of ContentNegotiatingViewResolver

The bean ID for the ContentNegotiatingViewResolver is now
"viewResolver" (it is the *one*). The conditions have been changed
so that a user only has to define a bean of the same name to switch
it off.

Fixes gh-546
pull/543/merge
Dave Syer 11 years ago
parent 4637c2a8f7
commit 373e2c5156

@ -182,9 +182,9 @@ public class ThymeleafAutoConfiguration {
"excludedViewNames", String[].class));
resolver.setViewNames(this.environment.getProperty("viewNames",
String[].class));
// Needs to come before any fallback resolver (e.g. a
// InternalResourceViewResolver)
resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 20);
// This resolver acts as a fallback resolver (e.g. like a
// InternalResourceViewResolver) so it needs to have low precedence
resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 5);
return resolver;
}

@ -179,8 +179,8 @@ public class WebMvcAutoConfiguration {
@Bean
@ConditionalOnBean(ViewResolver.class)
public ContentNegotiatingViewResolver contentNegotiatingViewResolver(
BeanFactory beanFactory) {
@ConditionalOnMissingBean(name = "viewResolver")
public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) {
ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
resolver.setContentNegotiationManager(beanFactory
.getBean(ContentNegotiationManager.class));

@ -747,9 +747,8 @@ added.
client. There is a useful
https://spring.io/blog/2013/06/03/content-negotiation-using-views[blog about `ContentNegotiatingViewResolver`]
that you might like to study to learn more, and also look at the source code for detail.
Be careful not to define your own `ViewResolver` with id ``viewResolver'' (like the
`ContentNegotiatingViewResolver`) otherwise, in that case, your bean will be
overwritten, not the other way round.
You can switch off the auto-configured
`ContentNegotiatingViewResolver` by defining a bean named ``viewResolver''.
* If you use Thymeleaf you will also have a `ThymeleafViewResolver` with id
``thymeleafViewResolver''. It looks for resources by surrounding the view name with a

Loading…
Cancel
Save