When using `@EnableWebMvc` or `<mvc:annotation-driven/>`, this is used by default
instead of JAXB2 if `jackson-dataformat-xml` is in the classpath.
* Views such as JSPs can now build links to controllers by referring to controller mappings
by name. A default name is assigned to every `@RequestMapping`. For example `FooController`
with method `handleFoo` is named "FC#handleFoo". The naming strategy is pluggable.
It is also possible to name an `@RequestMapping` explicitly through its name attribute.
A new `mvcUrl` function in the Spring JSP tag library makes this easy to use in JSP pages.
* `ResponseEntity` provides a builder-style API to guide controller methods
towards the preparation of server-side responses, e.g. `ResponseEntity.ok()`.
For the client side there is a new `RequestEntity` also offering a builder-style API that
guides towards the preparation of client-side HTTP requests.
* `RequestEntity` is a new type that provides a builder-style API to guide client-side REST
code towards the preparation of HTTP requests.
* MVC Java config and XML namespace:
** View resolver configuration -- if you've had to configure view resolution with content
negotiation you'll likely appreciate this one. See <<mvc-config-view-resolvers>> for
details.
** Enhanced "view controllers" -- in addition to mapping URLs directly to view names
without the need for controller logic, view controllers now have built-in support for
redirecting and setting the response status. An application can use this to configure
redirect URLs, render 404 responses with a view, send "no content" responses, etc.
Some use cases are https://jira.spring.io/browse/SPR-11543?focusedCommentId=100308&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-100308[listed here].
** Path matching -- these frequently used customizations are now built-in and have also been
backported to 4.0. See <<mvc-config-path-matching>> for details.
** View resolvers can now be configured including support for content
negotiation, see <<mvc-config-view-resolvers>>.
** View controllers now have built-in support for redirects and for setting the response
status. An application can use this to configure redirect URLs, render 404 responses