Spring MVC @GetMapping("/v1/**") 使用ANT通配符: 如何获取完整路径?

5
考虑Spring MVC中的一个@RestController,其中@GetMapping映射到/v1/**以处理所有子路径。
@RestController
public class MyController {

    @GetMapping(value = "/v1/**", produces = MediaType.TEXT_HTML_VALUE)
    public ModelAndView handle(String fullPathInMethodArg) {
        ...
        String fullPathInLocalVar = ...;
        ...
    }
}

我该如何获取完整路径?

理想情况下,我希望在方法中作为参数检索它:String fullPathInMethodArg

或者,我希望将其作为局部变量检索:String fullPathInLocalVar

1个回答

8
我认为这个回答解决了你的问题:
@RequestMapping("/v1/**")
public void foo(HttpServletRequest request) {
    String fullPath = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
    String subPath = StringUtils.removeStart(fullPath, "/v1");
    ...
}

Spring 3 RequestMapping: 获取路径值


显然有一个被拒绝的变更请求:https://jira.spring.io/browse/SPR-14032 - Stefaan Neyts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接