java中接收两个参数,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值