王羽(ジミー・ウォング):
私は画像を管理するためのファイルアップロードウィジェットに取り組んでいました。
Iは、画像パスが経由して受信することができることを望む@PathVariable
ような、スプリングMVCでhttp://localhost:8080/show/img/20181106/sample.jpg
の代わりhttp://localhost:8080/show?imagePath=/img/20181106/sample.jpg
。
しかし、/
春のMVCを解決され、アクセスするときには、常に404を返します。
この周りに何か良い方法はありますか?
ロマン・カラー:
申し訳ありませんがそれを言うために、私は@Alienの答えは問題ではない答えをして思う:それは唯一のドットの場合対処.
で@PathVariable
はなく、スラッシュの場合を/
。
私はそれは私が考える非常にエレガントしかしSTIL OKではありません、一度問題を抱えていたし、ここで私はそれを解決する方法です。
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);
...
}