gpt4 book ai didi

java - 如何在 spring mvc Rest 服务中将请求 URI 的一部分获取到路径变量中

转载 作者:行者123 更新时间:2023-12-01 12:21:38 25 4
gpt4 key购买 nike

我的服务代码:

@RequestMapping(value = "/projects/{projectId}/resources/web/{path}", method = RequestMethod.GET)
@ResponseBody
public void getWebFileContent(@PathVariable("projectId") String projectId,@PathVariable("path") String path, HttpServletRequest httpServletRequest) throws Exception {
}

我的要求是

  • /projects/pro1/resources/web/src/main/webapp
  • /projects/pro1/resources/web/src/main/test/com/pro1...

是否可以将“src/main/webapp/../.....”放入“path”变量

最佳答案

Spring 在 url 处理程序映射中提供了三种模式

  • ? - 零个或一个字符
  • *- 一个字符
  • ** - 一个或多个字符

下面的方法解决了我的问题

@RequestMapping(value = "/projects/{projectId}/resources/web/**", method = RequestMethod.GET)
@ResponseBody
public void getWebFileContent(@PathVariable("projectId") String projectIdHttpServletRequest httpServletRequest) throws Exception {
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
// will get path = /projects/pro1/resources/web/src/main/webapp
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
// will get bestMatchPattern = /projects/pro1/resources/web/**
AntPathMatcher apm = new AntPathMatcher();
String exactPath = apm.extractPathWithinPattern(bestMatchPattern, path);
// will get exactPath = src/main/webapp
.....
}

任何其他方法都值得赞赏......

关于java - 如何在 spring mvc Rest 服务中将请求 URI 的一部分获取到路径变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26623417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com