- AbstractControllerUrlHandlerMapping
- AbstractDetectingUrlHandlerMapping
- AbstractHandlerMapping
- AbstractMapBasedHandlerMapping
- AbstractUrlHandlerMapping
- BeanNameUrlHandlerMapping
- ControllerBeanNameHandlerMapping
- ControllerClassNameHandlerMapping
- DefaultAnnotationHandlerMapping
- HandlerMapping
- ParameterHandlerMapping
- RequestMappingHandlerMapping
- RequestMappingInfoHandlerMapping
- SimpleUrlHandlerMapping
- HandlerAdapter : HandlerAdapter is responsible for actually invoking the handler. The handler is of type Object and hence the dispatcher servlet can handle any Handler type using the HandlerAdapter. Spring provides certain HandlerAdapters that can handle specific handler interfaces.
- SimpleServletHandlerAdapter : This adapter allows using the Servlet Interface. The adapter calls the service method of the Servlet. This adapter is not registered by default and needs to be registered in the DispatcherServlet as a bean. All handler beans that implement the Servlet interface are automatically handled by this adapter.
- SimpleControllerHandlerAdapter : Adapter for handlers that implement the Controller interface
- HttpRequestHandlerAdapter : Handles org.springframework.web.HttpRequestHandler interface. The HttpRequestHandler is used for handler that process HttpRequests. This interface is generally used to generate binary responses and does not have a ModelAndView return type. The spring remoting classes such as HttpInvokerServiceExporter and HessianServiceExporter implement this interface.
- AnnotationMethodHandlerAdapter : This adapter maps Handler methods based on HTTP paths, HTTP methods and request parameters. The request parameters are bound through @RequestParam annotation. Note that this Adapater is deprecated in spring 3.2 in favour of RequestMappingHandlerAdapter.
- RequestMappingHandlerAdapter : This adapter supports Handler of type HandlerMethod. This adapter is used with RequestMappingHandlerMapping and is the new class introduced in Spring 3.1. custom Resolvers can be set using
- AbstractCommandController
- AbstractController
- AbstractFormController
- AbstractUrlViewController
- AbstractWizardFormController
- BaseCommandController
- CancellableFormController
- ComponentControllerSupport
- Controller
- EventAwareController
- MultiActionController
- ParameterizableViewController
- PortletModeNameViewController
- PortletWrappingController
- ResourceAwareController
- ServletForwardingController
- ServletWrappingController
- SimpleControllerHandlerAdapter
- SimpleFormController
- UrlFilenameViewController
In Spring MVC, view resolvers enable you to render models in a browser without tying you to a specific view technology like JSP, Velocity, XML…etc.
There are two interfaces that are important to the way Spring handles views are ViewResolver and View. The ViewResolver provides a mapping between view names and actual views. The View interface addresses the preparation of the request and hands the request over to one of the view technologies.
Below are the important viewresolvers provided by spring framework:
- AbstractCachingViewResolver : Abstract view resolver that caches views. Often views need preparation before they can be used; extending this view resolver provides caching.
- XmlViewResolver : Implementation of ViewResolver that accepts a configuration file written in XML with the same DTD as Spring’s XML bean factories. The default configuration file is /WEB-INF/views.xml.
- ResourceBundleViewResolver : Implementation of ViewResolver that uses bean definitions in a ResourceBundle, specified by the bundle base name. Typically you define the bundle in a properties file, located in the classpath. The default file name is views.properties.
- UrlBasedViewResolver : Simple implementation of the ViewResolver interface that effects the direct resolution of logical view names to URLs, without an explicit mapping definition. This is appropriate if your logical names match the names of your view resources in a straightforward manner, without the need for arbitrary mappings.
- InternalResourceViewResolver : Convenient subclass of UrlBasedViewResolver that supports InternalResourceView (in effect, Servlets and JSPs) and subclasses such as JstlView and TilesView. You can specify the view class for all views generated by this resolver by using setViewClass(..).
- VelocityViewResolver/FreeMarkerViewResolver : Convenient subclass of UrlBasedViewResolver that supports VelocityView (in effect, Velocity templates) or FreeMarkerView ,respectively, and custom subclasses of them.
- ContentNegotiatingViewResolver : Implementation of the ViewResolver interface that resolves a view based on the request file name or Accept header.
- ViewResolver : View Resolvers get a org.springframework.web.servlet.View based on a view name.
- JasperReportsViewResolver : Supports AbstractJasperReportsView by resolving the view name to the URL of the report file.