Class RequestMappingInfoHandlerMapping
java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.handler.AbstractHandlerMapping
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping<RequestMappingInfo>
org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping
- All Implemented Interfaces:
Aware,BeanNameAware,InitializingBean,ApplicationContextAware,Ordered,ServletContextAware,HandlerMapping
- Direct Known Subclasses:
RequestMappingHandlerMapping
public abstract class RequestMappingInfoHandlerMapping
extends AbstractHandlerMethodMapping<RequestMappingInfo>
Abstract base class for classes for which
RequestMappingInfo defines
the mapping between a request and a handler method.- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev
-
Field Summary
Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
mappingsLoggerFields inherited from class org.springframework.context.support.ApplicationObjectSupport
loggerFields inherited from interface org.springframework.web.servlet.HandlerMapping
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, LOOKUP_PATH, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTEFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn the request mapping paths that are not patterns.protected HandlerMethodgetHandlerInternal(HttpServletRequest request) Look up a handler method for the given request.protected Comparator<RequestMappingInfo>getMappingComparator(HttpServletRequest request) Provide a Comparator to sort RequestMappingInfos matched to a request.Get the URL path patterns associated with the suppliedRequestMappingInfo.protected RequestMappingInfogetMatchingMapping(RequestMappingInfo info, HttpServletRequest request) Check if the given RequestMappingInfo matches the current request and return a (potentially new) instance with conditions that match the current request -- for example with a subset of URL patterns.protected voidhandleMatch(RequestMappingInfo info, String lookupPath, HttpServletRequest request) Expose URI template variables, matrix variables, and producible media types in the request.protected HandlerMethodhandleNoMatch(Set<RequestMappingInfo> infos, String lookupPath, HttpServletRequest request) Iterate all RequestMappingInfo's once again, look if any match by URL at least and raise exceptions according to what doesn't match.Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMethodMapping
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getCandidateBeanNames, getCorsConfiguration, getHandlerMethods, getHandlerMethodsForMappingName, getMappingForMethod, getNamingStrategy, handlerMethodsInitialized, hasCorsConfigurationSource, initCorsConfiguration, initHandlerMethods, isHandler, lookupHandlerMethod, processCandidateBean, registerHandlerMethod, registerMapping, setDetectHandlerMethodsInAncestorContexts, setHandlerMethodMappingNamingStrategy, setPatternParser, unregisterMappingMethods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping
adaptInterceptor, detectMappedInterceptors, extendInterceptors, formatMappingName, getAdaptedInterceptors, getCorsConfigurationSource, getCorsHandlerExecutionChain, getCorsProcessor, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getPatternParser, getUrlPathHelper, initApplicationContext, initInterceptors, initLookupPath, setAlwaysUseFullPath, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper, usesPathPatternsMethods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextMethods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
RequestMappingInfoHandlerMapping
protected RequestMappingInfoHandlerMapping()
-
-
Method Details
-
getMappingPathPatterns
Get the URL path patterns associated with the suppliedRequestMappingInfo.- Overrides:
getMappingPathPatternsin classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getDirectPaths
Description copied from class:AbstractHandlerMethodMappingReturn the request mapping paths that are not patterns.- Overrides:
getDirectPathsin classAbstractHandlerMethodMapping<RequestMappingInfo>
-
getMatchingMapping
protected RequestMappingInfo getMatchingMapping(RequestMappingInfo info, HttpServletRequest request) Check if the given RequestMappingInfo matches the current request and return a (potentially new) instance with conditions that match the current request -- for example with a subset of URL patterns.- Specified by:
getMatchingMappingin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
info- the mapping to get a match forrequest- the current HTTP servlet request- Returns:
- an info in case of a match; or
nullotherwise.
-
getMappingComparator
Provide a Comparator to sort RequestMappingInfos matched to a request.- Specified by:
getMappingComparatorin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
request- the current request- Returns:
- the comparator (never
null)
-
getHandlerInternal
Description copied from class:AbstractHandlerMethodMappingLook up a handler method for the given request.- Overrides:
getHandlerInternalin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
request- current HTTP request- Returns:
- the corresponding handler instance, or
nullif none found - Throws:
Exception- if there is an internal error
-
handleMatch
Expose URI template variables, matrix variables, and producible media types in the request.- Overrides:
handleMatchin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
info- the matching mappinglookupPath- mapping lookup path within the current servlet mappingrequest- the current request- See Also:
-
handleNoMatch
protected HandlerMethod handleNoMatch(Set<RequestMappingInfo> infos, String lookupPath, HttpServletRequest request) throws ServletException Iterate all RequestMappingInfo's once again, look if any match by URL at least and raise exceptions according to what doesn't match.- Overrides:
handleNoMatchin classAbstractHandlerMethodMapping<RequestMappingInfo>- Parameters:
infos- all registered mappingslookupPath- mapping lookup path within the current servlet mappingrequest- the current request- Throws:
HttpRequestMethodNotSupportedException- if there are matches by URL but not by HTTP methodHttpMediaTypeNotAcceptableException- if there are matches by URL but not by consumable/producible media typesServletException- in case of errors
-