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
SPR-7517). Furthermore, it's not possible to combine all options in the request mapping of a single method (see SPR-6497, SPR-7722).
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.