SpringMVC 请求路径结尾存在.使用@PathVariable访问路径内容,路径参数获取不准确的问题 ...

SpringMVC采用Get方式请求资源时,如果请求路径的结尾中带有小数点(.)时,同时使用@PathVariable访问路径内容时,请求路径中最后一个小数点及其后面的内容会被Spring截断丢弃
比如针对版本的访问:
    对于请求路径:
        http://host:port/program/module/download/apk/3.20.10
    后端RequestMapping为

 

@RequestMapping(value="module/download/apk/{version}",method=RequestMethod.GET)
 public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){
     //解析后获得到的版本值为:3.20
 }

 又比如针对文件的访问
    对于请求路径:
        http://host:port/program/viewFile/module/201612201231445.pdf
    后端RequestMapping为

@RequestMapping(value="viewFile/{module}/{filename}",method=RequestMethod.GET)
 public void viewFile(HttpSession session,HttpServletResponse response,@PathVariable String module, @PathVariable String filename){
     //解析后获得到的文件名称为201612201231445并没有或追文件后缀
 }

 在确实需要使用以小数点的路径进行请求的话可以选择如下两种解决方案:
    1、在路径后加任意小数点结尾的字符串
        http://host:port/program/module/download/apk/3.20.10.html
        http://host:port/program/viewFile/module/201612201231445.pdf.jsp
    2、使用Spring正则表达式(SpEL)

@RequestMapping(value="module/download/apk/{version:.+}",method=RequestMethod.GET)
 @RequestMapping(value="viewFile/{module}/{filename:.+}",method=RequestMethod.GET)

 转载地址:https://www.cnblogs.com/banning/p/6226147.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值