Content negotiation is a mechanism that makes it possible to serve different representations of the same resource. For example, so far we have shown our product detail page in a JSP representation. What if we want to represent the same content in an XML format. Similarly, what if we want the same content in a JSON format? Here comes Spring MVC's ContentNegotiatingViewResolver
(org.springframework.web.servlet.view.ContentNegotiatingViewResolver
) to help us.
The XML and JSON formats are popular data interchange formats that are heavily used in web service communications. Using ContentNegotiatingViewResolver
, we can incorporate many Views such as MappingJacksonJsonView
(for JSON) and MarshallingView
(for XML) to represent the same product information in a XML or JSON format.