考虑使用@RestController
的Spring MVC @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
。
答案 0 :(得分:2)
我认为这回答了你的问题:
@RequestMapping("/v1/**")
public void foo(HttpServletRequest request) {
String fullPath = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String subPath = StringUtils.removeStart(fullPath, "/v1");
...
}