The Spring Framework

## org.springframework.web.servlet
Interface HandlerAdapter

All Known Implementing Classes:
  AnnotationMethodHandlerAdapter, HttpRequestHandlerAdapter, SimpleControllerHandlerAdapter, SimpleServletHandlerAdapter, ThrowawayControllerHandlerAdapter

    public interface HandlerAdapter

MVC framework SPI interface, allowing parameterization of core MVC workflow.

Interface that must be implemented for each handler type to handle a request. This interface is used to allow the DispatcherServlet to be indefinitely extensible. The DispatcherServlet accesses all installed handlers through this interface, meaning that it does not contain code specific to any handler type.

Note that a handler can be of type Object. This is to enable handlers from other frameworks to be integrated with this framework without custom coding.

This interface is not intended for application developers. It is available to handlers who want to develop their own web workflow.

Note: Implementations can implement the Ordered interface to be able to specify a sorting order and thus a priority for getting applied by DispatcherServlet. Non-Ordered instances get treated as lowest priority.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `SimpleControllerHandlerAdapter`, `ThrowawayControllerHandlerAdapter`, `SimpleServletHandlerAdapter`

Method Summary
`long` `getLastModified(HttpServletRequest request, Object handler)` Same contract as for HttpServlet's `getLastModified` method.
`ModelAndView` `handle(HttpServletRequest request, HttpServletResponse response, Object handler)` Use the given handler to handle this request.
`boolean` `supports(Object handler)` Given a handler instance, return whether or not this HandlerAdapter can support it.

Method Detail

### supports

    boolean supports(Object handler)

  Given a handler instance, return whether or not this HandlerAdapter can support it. Typical HandlerAdapters will base the decision on the handler type. HandlerAdapters will usually only support one handler type each.

  A typical implementation:

  `return (handler instanceof MyHandler);`

  Parameters:
    `handler` - handler object to check
  Returns:
    whether or not this object can use the given handler

### handle

    ModelAndView handle(HttpServletRequest request,
                        HttpServletResponse response,
                        Object handler)
                        throws Exception

  Use the given handler to handle this request. The workflow that is required may vary widely.

  Parameters:
    `request` - current HTTP request
    `response` - current HTTP response
    `handler` - handler to use. This object must have previously been passed to the `supports` method of this interface, which must have returned `true`.
  Returns:
    ModelAndView object with the name of the view and the required model data, or `null` if the request has been handled directly
  Throws:
    `Exception` - in case of errors

### getLastModified

    long getLastModified(HttpServletRequest request,
                         Object handler)

  Same contract as for HttpServlet's `getLastModified` method. Can simply return -1 if there's no support in the handler class.

  Parameters:
    `request` - current HTTP request
    `handler` - handler to use
  Returns:
    the lastModified value for the given handler
  See Also:
    `HttpServlet.getLastModified(javax.servlet.http.HttpServletRequest)`, `LastModified.getLastModified(javax.servlet.http.HttpServletRequest)`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.