Spring boot项目实用 @PathVariable后台接受参数带小说点的字段com.baicu.com或者100.01 遇到的小坑

1,在Spring boot 中前端页面传入参数给后台

  例子:

  jsp中的js代码

function totest(){

  var selectedtest = datagrid.datagrid('getSelected');

  if (null != selectedtest) {

parent.createTab('${app}/to/test/'+selectedtest.name+"/"+selectedtest.address,'修改映

  }else{

      $.messager.alert('提示', '请先选择列表中的数据再进行处理!', 'info');

  }

 前端传入的address 为com.baidu.com

后台代码

  @RequestMapping("/to/test/{name}/{address}")

  public String totest(@PathVariable(value = "name") String name,@PathVariable(value = "address") String address) {

    //这个时候接受到的address 为 com

  }

原因说明

     Spring将点(.)后面的最后一部分解释为文件扩展名,如.json或.xml。因此,当Spring试图解析路径变量时,它只是在URI末尾遇到一个点(.)后截断其余的数据。注意:只有将路径变量保存在URI的末尾,才会发生这种情况。

解决方案

           1:最简单的就是将带点的不要放在最后,可以和selectedtest.name换一下位置,或者在这个路径下随便加一个字符串

       ${app}/to/test/'+selectedtest.name+"/"+selectedtest.address/test,只是有个小尾巴这样看着别扭

          2:改变就收的 为@RequestMapping("/to/test/{name}/{address:.+}")

         好了 这样问题就解决了 

————————————————

版权声明:本文为CSDN博主「java美女」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_38680031/article/details/99678207

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容