服务器之家

服务器之家 > 正文

使用@PathVariable接收两个参数

时间:2021-11-30 10:50     来源/作者:快乐的小三菊

@PathVariable接收两个参数

首先

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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这样接收

?
1
2
3
4
5
@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'。

解决方案

第一种

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

第二种

UrlEncode

第三种

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

第四种

不拼接路径,改成'xxxxx?name=Oliver.wang' 请求参数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/xhf852963/article/details/84585779

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部