使⽤@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:
['${tPath}/sectionInfo/configAntennaIndex/'+data.dmmc+'/'+data.cdh+'', 'no']
//iframe的url,no代表不显⽰滚动条
});
}
在Controller这样接收
@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,HttpServletRequest request){},输出request.ServletPath(),发现路径正
常'/xxx/xxx/Oliver.wang'。
解决⽅案iframe参数传递
第⼀种
加上 {:.+} ,⽐如 @getMapping(“xxx/{name:.+}”)
第⼆种
UrlEncode
第三种
request.ServletPath() 拿到路径截取字符串
第四种
不拼接路径,改成'xxxxx?name=Oliver.wang' 请求参数
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。