The ContentNegotiatingViewResolver provides a range of options for configuring content negotiation based on the 'Accept' header, by path extension, or by request parameter. However when writing to the response via @ResponseBody only the 'Accept' header is used (see #12175). Furthermore, it's not possible to combine all options in the request mapping of a single method (see #11163, #12378).
This is an umbrella ticket to improve how content negotiation options are configured and to equalize the choices throughout request mappings, @ResponseBody methods, and ContentNegotiatingViewResolver.
Affects: 3.1 M1
#12288 Allow valid file extension paths for content negotiation to be specified