spring boot @PathVariable 获取斜杠/参数

备忘,遇到在URl中接收类似文件路径的参数 /put/test/dy_only/test.jpg
理想状态 put 作为上传空间,test/dy_only/test.jpg 作为文件名。

Controller 里使用正则正常匹配

@PutMapping(value = "{dir}/**")
public void putFile(HttpServletRequest request, HttpServletResponse response,
                    @PathVariable String dir) {
  String fileName = getExtractPath(request);
}

使用如下方法获取所需要的模式串。

private String getExtractPath(final HttpServletRequest request) {
  //用于获取请求全路径: /demo/put/test/dy_only/test.jpg
  String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
  //用户获取匹配到controller的路径:/demo/{dir}/**
  String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
  //使用 AntPathMatcher 匹配所需要的URL : test/dy_only/test.jpg
  return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
}

↓ 从request里面取出的两个参数 ↓


request
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 843评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,156评论 1 32
  • 原文链接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao阅读 4,768评论 0 9
  • 翻译自Spring官方文档 4.1.2版本 相关文章: Spring参考手册 1 Spring Framework...
    liycode阅读 729评论 0 2
  • 刚刚过去的鸡年最后一天,我选择陪伴在了家人身边,没有看一会儿手机,没有用一会儿电脑。 因为,我确切地知道,在过去的...
    石佛寺车站阅读 178评论 0 0