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