|
|
|
@ -110,19 +110,19 @@ public class DefaultAnnotationHandlerMapping extends AbstractDetectingUrlHandler |
|
|
|
// @RequestMapping found at type level
|
|
|
|
// @RequestMapping found at type level
|
|
|
|
this.cachedMappings.put(handlerType, mapping); |
|
|
|
this.cachedMappings.put(handlerType, mapping); |
|
|
|
Set<String> urls = new LinkedHashSet<String>(); |
|
|
|
Set<String> urls = new LinkedHashSet<String>(); |
|
|
|
String[] typeLevelPaths = mapping.value(); |
|
|
|
String[] typeLevelPatterns = mapping.value(); |
|
|
|
if (typeLevelPaths.length > 0) { |
|
|
|
if (typeLevelPatterns.length > 0) { |
|
|
|
// @RequestMapping specifies paths at type level
|
|
|
|
// @RequestMapping specifies paths at type level
|
|
|
|
String[] methodLevelPaths = determineUrlsForHandlerMethods(handlerType); |
|
|
|
String[] methodLevelPatterns = determineUrlsForHandlerMethods(handlerType); |
|
|
|
for (String typeLevelPath : typeLevelPaths) { |
|
|
|
for (String typeLevelPattern : typeLevelPatterns) { |
|
|
|
if (!typeLevelPath.startsWith("/")) { |
|
|
|
if (!typeLevelPattern.startsWith("/")) { |
|
|
|
typeLevelPath = "/" + typeLevelPath; |
|
|
|
typeLevelPattern = "/" + typeLevelPattern; |
|
|
|
} |
|
|
|
} |
|
|
|
for (String methodLevelPath : methodLevelPaths) { |
|
|
|
for (String methodLevelPattern : methodLevelPatterns) { |
|
|
|
String combinedPath = getPathMatcher().combine(typeLevelPath, methodLevelPath); |
|
|
|
String combinedPattern = getPathMatcher().combine(typeLevelPattern, methodLevelPattern); |
|
|
|
addUrlsForPath(urls, combinedPath); |
|
|
|
addUrlsForPath(urls, combinedPattern); |
|
|
|
} |
|
|
|
} |
|
|
|
addUrlsForPath(urls, typeLevelPath); |
|
|
|
addUrlsForPath(urls, typeLevelPattern); |
|
|
|
} |
|
|
|
} |
|
|
|
return StringUtils.toStringArray(urls); |
|
|
|
return StringUtils.toStringArray(urls); |
|
|
|
} |
|
|
|
} |
|
|
|
|