编程语言
首页 > 编程语言> > java-Spring MVC @PathVariable如何接收带有多个’/’的参数?

java-Spring MVC @PathVariable如何接收带有多个’/’的参数?

作者:互联网

我正在研究用于管理图像的文件上传小部件.

我希望可以通过Spring MVC中的@PathVariable接收图像路径,例如http:// localhost:8080 / show / img / 20181106 / sample.jpg而不是http:// localhost:8080 / show?imagePath = / img /20181106/sample.jpg.

但是/将被Spring MVC解析,并且在访问时它将始终返回404.

有什么好办法解决吗?

解决方法:

不好意思地说,但是我认为@Alien的答案不能回答问题:它只能处理点的情况.在@PathVariable中,但不是/.

我曾经遇到过这个问题,这是我解决的方法,它不是很优雅,但我认为还不错:

private AntPathMatcher antPathMatcher = new AntPathMatcher();

@GetMapping("/show/**")
public ... image(HttpServletRequest request) {
    String uri = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
    String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
    String path = antPathMatcher.extractPathWithinPattern(pattern, uri);

    ...
}

标签:path-variables,spring,java,spring-mvc
来源: https://codeday.me/bug/20191024/1924327.html