requestMapping
@PathVariable
值被解析后,有没有办法得到完整的路径值?
即: /{id}/{restOfTheUrl}
应该能够解析 /1/dir1/dir2/file.html
进入 id=1
和 restOfTheUrl=/dir1/dir2/file.html
任何想法,将不胜感激。
原文由 Spring Monkey 发布,翻译遵循 CC BY-SA 4.0 许可协议
requestMapping
@PathVariable
值被解析后,有没有办法得到完整的路径值?
即: /{id}/{restOfTheUrl}
应该能够解析 /1/dir1/dir2/file.html
进入 id=1
和 restOfTheUrl=/dir1/dir2/file.html
任何想法,将不胜感激。
原文由 Spring Monkey 发布,翻译遵循 CC BY-SA 4.0 许可协议
刚刚发现与我的问题相对应的问题。使用 HandlerMapping 常量,我能够为此目的编写一个小实用程序:
/**
* Extract path from a controller mapping. /controllerUrl/** => return matched **
* @param request incoming request.
* @return extracted path
*/
public static String extractPathFromPattern(final HttpServletRequest request){
String path = (String) request.getAttribute(
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String ) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
AntPathMatcher apm = new AntPathMatcher();
String finalPath = apm.extractPathWithinPattern(bestMatchPattern, path);
return finalPath;
}
原文由 Fabien Kruba 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.5k 阅读
1 回答2.1k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
2 回答1.4k 阅读
2 回答1k 阅读
1 回答519 阅读✓ 已解决
1 回答1k 阅读
URL 的不匹配部分作为名为
HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
的请求属性公开: