-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Closed
Labels
in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement
Milestone
Description
Rossen Stoyanchev opened SPR-8410 and commented
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
Sub-tasks:
- Allow valid file extension paths for content negotiation to be specified [SPR-7632] #12288 Allow valid file extension paths for content negotiation to be specified
- Introduce ContentNegotiationStrategy abstraction [SPR-8416] #13064 Introduce ContentNegotiationStrategy abstraction
- Enhance "produces" condition to use the new ContentNegotiationManager type [SPR-8417] #13065 Enhance "produces" condition to use the new ContentNegotiationManager type
- Enhance RequestResponseBodyMethodProcessor and HttpEntityMethodProcessor to use new the ContentNegotiationManager type [SPR-8418] #13066 Enhance RequestResponseBodyMethodProcessor and HttpEntityMethodProcessor to use new the ContentNegotiationManager type
- Enhance ContentNegotiatingViewResolver to use the new ContentNegotiationManager type [SPR-8419] #13067 Enhance ContentNegotiatingViewResolver to use the new ContentNegotiationManager type
- Update the MVC Java config and the MVC namespace to support content negotiation options [SPR-8420] #13068 Update the MVC Java config and the MVC namespace to support content negotiation options
- Configure PatternsRequestCondition with information that allows it to do a smart suffix pattern match [SPR-8474] #13120 Configure PatternsRequestCondition with information that allows it to do a smart suffix pattern match
Issue Links:
- Spring MVC - Ability to use a Converter based on the Path Extension instead of Accep Header. [SPR-8546] #13190 Spring MVC - Ability to use a Converter based on the Path Extension instead of Accep Header. ("is duplicated by")
- Allow customization of ContentNegotiatingViewResolver by making some of its methods protected [SPR-8640] #13282 Allow customization of ContentNegotiatingViewResolver by making some of its methods protected
- Add extension element to Spring Web MVC @RequestMapping annotation [SPR-9153] #13791 Add extension element to Spring Web MVC
@RequestMappingannotation - Add content-negotiation to RequestBody and ResponseBody processing [SPR-6993] #11658 Add content-negotiation to RequestBody and ResponseBody processing ("supersedes")
- @RequestMapping should support accept header and url extension [SPR-6497] #11163
@RequestMappingshould support accept header and url extension ("supersedes") - @RequestMapping should support alternative between a header and a url extension [SPR-7722] #12378
@RequestMappingshould support alternative between a header and a url extension ("supersedes") - Introduce request parameter based content negotiation for ResponseBody / HttpMessageConverter approach [SPR-7517] #12175 Introduce request parameter based content negotiation for ResponseBody / HttpMessageConverter approach ("supersedes")
6 votes, 9 watchers
Metadata
Metadata
Assignees
Labels
in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement