org.springframework.web.servlet.mvc.annotation
Class AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver

java.lang.Object
  extended by org.springframework.web.bind.annotation.support.HandlerMethodResolver
      extended by org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver
Enclosing class:
AnnotationMethodHandlerAdapter

private class AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver
extends HandlerMethodResolver

Servlet-specific subclass of HandlerMethodResolver.


Field Summary
private  java.util.Map<java.lang.reflect.Method,AnnotationMethodHandlerAdapter.RequestMappingInfo> mappings
           
 
Constructor Summary
private AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver(java.lang.Class<?> handlerType)
           
 
Method Summary
private  void extractHandlerMethodUriTemplates(java.lang.String mappedPattern, java.lang.String lookupPath, HttpServletRequest request)
           
private  java.lang.String getCombinedPattern(java.lang.String methodLevelPattern, java.lang.String lookupPath, HttpServletRequest request)
          Determines the combined pattern for the given methodLevelPattern and path.
private  java.lang.String getMatchingPattern(java.lang.String pattern, java.lang.String lookupPath)
           
protected  boolean isHandlerMethod(java.lang.reflect.Method method)
           
 java.lang.reflect.Method resolveHandlerMethod(HttpServletRequest request)
           
private  boolean useTypeLevelMapping(HttpServletRequest request)
           
 
Methods inherited from class org.springframework.web.bind.annotation.support.HandlerMethodResolver
getActualSessionAttributeNames, getHandlerMethods, getInitBinderMethods, getModelAttributeMethods, getTypeLevelMapping, hasHandlerMethods, hasSessionAttributes, hasTypeLevelMapping, init, isInitBinderMethod, isModelAttributeMethod, isSessionAttribute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mappings

private final java.util.Map<java.lang.reflect.Method,AnnotationMethodHandlerAdapter.RequestMappingInfo> mappings
Constructor Detail

AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver

private AnnotationMethodHandlerAdapter.ServletHandlerMethodResolver(java.lang.Class<?> handlerType)
Method Detail

isHandlerMethod

protected boolean isHandlerMethod(java.lang.reflect.Method method)
Overrides:
isHandlerMethod in class HandlerMethodResolver

resolveHandlerMethod

public java.lang.reflect.Method resolveHandlerMethod(HttpServletRequest request)
                                              throws ServletException
Throws:
ServletException

useTypeLevelMapping

private boolean useTypeLevelMapping(HttpServletRequest request)

getCombinedPattern

private java.lang.String getCombinedPattern(java.lang.String methodLevelPattern,
                                            java.lang.String lookupPath,
                                            HttpServletRequest request)
Determines the combined pattern for the given methodLevelPattern and path.

Uses the following algorithm:

  1. If there is a type-level mapping with path information, it is combined with the method-level pattern.
  2. If there is a best matching pattern in the request, it is combined with the method-level pattern.
  3. Otherwise, the method-level pattern is returned.


getMatchingPattern

private java.lang.String getMatchingPattern(java.lang.String pattern,
                                            java.lang.String lookupPath)

extractHandlerMethodUriTemplates

private void extractHandlerMethodUriTemplates(java.lang.String mappedPattern,
                                              java.lang.String lookupPath,
                                              HttpServletRequest request)