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

时间:2018-11-06 10:07:09

标签: java spring spring-mvc path-variables

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

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

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

有什么好的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以像下面那样使用。

@RequestMapping(value = "/show/{path:.+}", method = RequestMethod.GET)
public File getImage(@PathVariable String path) {
        // logic goes here
}

这里.+是一个正则表达式匹配项,它不会截断路径中的.jpg。

答案 1 :(得分:1)

抱歉,@ Alien的答案不能解决问题:它仅处理.中点@PathVariable的情况,而不处理斜杠{ {1}}。

我曾经遇到过这个问题,这是我如何解决的,它不是很优雅,但我认为还挺好的:

/