首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring 3 RequestMapping:获取路径值

Spring 3 RequestMapping:获取路径值
EN

Stack Overflow用户
提问于 2010-09-11 01:28:51
回答 10查看 192.9K关注 0票数 148

在解析requestMapping @PathVariable值之后,有没有办法获得完整的路径值?

也就是说:/{id}/{restOfTheUrl}应该能够将/1/dir1/dir2/file.html解析为id=1restOfTheUrl=/dir1/dir2/file.html

任何想法都将不胜感激。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-09-11 01:49:30

URL的不匹配部分被公开为名为HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE的请求属性

代码语言:javascript
复制
@RequestMapping("/{id}/**")
public void foo(@PathVariable("id") int id, HttpServletRequest request) {
    String restOfTheUrl = (String) request.getAttribute(
        HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
    ...
}
票数 207
EN

Stack Overflow用户

发布于 2012-12-19 00:36:03

刚刚发现了与我的问题相对应的问题。使用HandlerMapping常量,我能够为此编写一个小实用程序:

代码语言:javascript
复制
/**
 * 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;

}
票数 58
EN

Stack Overflow用户

发布于 2016-08-19 09:16:27

这篇文章在这里已经有很长一段时间了,不过还是发了这篇文章。可能对某些人有用。

代码语言:javascript
复制
@RequestMapping( "/{id}/**" )
public void foo( @PathVariable String id, HttpServletRequest request ) {
    String urlTail = new AntPathMatcher()
            .extractPathWithinPattern( "/{id}/**", request.getRequestURI() );
}
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3686808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档