org.springframework.web.servlet

Interface HandlerAdapter

  • All Known Implementing Classes:
    AbstractHandlerMethodAdapter, HttpRequestHandlerAdapter, RequestMappingHandlerAdapter, SimpleControllerHandlerAdapter, SimpleServletHandlerAdapter


    public interface HandlerAdapter
    MVC framework SPI, allowing parameterization of the 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, as well as to allow for annotation-driven handler objects that do not obey any specific Java interface.

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

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

    Author:
    Rod Johnson, Juergen Hoeller
    See Also:
    SimpleControllerHandlerAdapter, SimpleServletHandlerAdapter
    • Method Detail

      • supports

        boolean supports(java.lang.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

        @Nullable
        ModelAndView handle(HttpServletRequest request,
                                      HttpServletResponse response,
                                      java.lang.Object handler)
                               throws java.lang.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:
        a ModelAndView object with the name of the view and the required model data, or null if the request has been handled directly
        Throws:
        java.lang.Exception - in case of errors