【发布时间】:2019-06-19 06:41:50
【问题描述】:
有一个控制器。
我提出请求http://localhost:8080/api/v1/download/avatar/1/GtAHWk3EVjBcltY.JPG - 我得到404。达不到方法。为什么?常规赛出了什么问题?
我使用的是 Spring Boot 2。但问题是有一个项目,没有启动并且有相同的映射 - 一切都很好。
@Controller
@RequestMapping("/api/v1/download")
public class DownloadRestController {
private final DownloadService downloadService;
@Autowired
public DownloadRestController(DownloadService downloadService) {
this.downloadService = downloadService;
}
@RequestMapping(value = "/avatar/{path:.*}")
public void download(HttpServletRequest request, @PathVariable String path) {
this.downloadService.download(request, "/avatar/"+path);
}
}
【问题讨论】:
-
你为什么要这样做?你不能只有一个普通的字符串吗?
-
@Pijotrek 没有。
/avatar/之后的数据是动态的。 -
是的,所以?
/avatar/{path}和@PathVariable("path") String path应该可以工作。不需要.*的东西。请尝试一下。 -
@Pijotrek 不工作 - 404。
-
http://localhost:8080/api/v1/download/avatar/1/GtAHWk3EVjBcltY.JPG- 看,有 2 个路径变量/1和/GtAHWk3EVjBcltY.JPG因此你的错误
标签: spring spring-boot spring-mvc path-variables