使用@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这样接收
@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' 请求参数
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
通过Java来测试JSON和Protocol Buffer的传输文件大小
这篇文章主要介绍了通过Java来测试JSON和Protocol Buffer的传输文件大小,Protocol Buffer(文中简称Protobuffer)是谷歌开发的新的文件传输格式,需要的朋友可以参考下2015-12-12java ArrayList集合中的某个对象属性进行排序的实现代码
这篇文章主要介绍了java ArrayList集合中的某个对象属性进行排序的实现代码,需要的朋友可以参考下2016-07-07Java实现JSP在Servelt中连接Oracle数据库的方法
这篇文章主要介绍了Java实现JSP在Servelt中连接Oracle数据库的方法,需要的朋友可以参考下2014-07-07mybatis3中@SelectProvider传递参数方式
这篇文章主要介绍了mybatis3中@SelectProvider传递参数方式。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08Spring中@Repository注解的作用和用法以及和@Mapper的区别详析
这篇文章主要给大家介绍了关于Spring中@Repository注解的作用和用法以及和@Mapper的区别的相关资料,注解的作用是标识一个类为数据访问对象,并由Spring框架进行实例化和管理,需要的朋友可以参考下2023-09-09
最新评论