使用@PathVariable接收两个参数

网友投稿 1006 2022-12-16

使用@PathVariable接收两个参数

使用@PathVariable接收两个参数

目录@PathVariable接收两个参数首先在Controller这样接收记一个使用@PathVariable的坑发现问题解决过程解决方案第一种第二种第三种第四种

@PathVariable接收两个参数

首先

@PathVariable无法接收对象,但是可以接收多个值

var data = obj.data;

if(obj.event === 'edit'){

//var tmpData = encodeURI(jsON.stringify(data));

layer.open({

//layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)

type:2,

title:"配置摄像头信息",

area: ['750px','560px'],

content:

['${pageContext.request.contextPath}/sectionInfo/configAntennaIndex/'+data.dmmc+'/'+data.cdh+'', 'no']

//iframe的url,no代表不显示滚动条

});

}

在Controller这http://样接收

@RequestMapping("configAntennaIndex/{dmmc}/{cdh}")

public ModelAndView configAntennaIndex(@PathVariable String dmmc,@PathVariable String cdh){

//...

}

记一个使用@PathVariable的坑

发现问题

前端路径拼接用户名,因为用户名中是带'.‘这个字符的。类似'Oliver.wang'。前端浏览器F12,发现路径正常拼接'xxxxxx/Oliver.wang?xxx=xxx',后端代码发现,controller层的参数,接收到只有'Oliver'。

解决过程

在方法中多加了一个参数(xxx,HttpServlethttp://Request request){},输出request.ServletPath(),发现路径正常'/xxx/xxx/Oliver.wang'。

解决方案

第一种

加上 {:.+} ,比如 @getMapping(“xxx/{name:.+}”)

第二种

UrlEncode

第三种

request.ServletPath() 拿到路径截取字符串

第四种

不拼接路径,改成'xxxxx?name=Olivehttp://r.wang' 请求参数

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用vue开发微信小程序(vue开发微信小程序的扩展名)
下一篇:用vue开发题库小程序(小程序云开发vue)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~