使用@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这样接收

@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' 请求参数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 处理@PathVariable注解允许参数为空、允许不传参数的问题

    说明 设置可以不传: 但是请求的时候,仍然提示projectId必传: 这是因为url要求带参,属于REST参数. 解决办法 设置多个url path即可,有的传REST参,有的不传.当然required必须是false 这个问题以前解决过,--还是要温习一下比较好呀 补充:接收参数注解@PathVariable 与 @RequestParam与 不使用注解接收参数的情况 @RequestParam使用场景: @RequestParam: 顾名思义,获取请求参数的 @RequestParam的两

  • SpringMVC使用@PathVariable接收参数过程解析

    PathVariable 映射 URL 绑定的占位符 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable("xxx") 绑定到操作方法的入参中. 使用MVC时,总是出现一些问题,当然都是使用造成的. 今天遇到一个问题,使用@PathVariable

  • 基于@PathVariable注解的用法说明

    带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义. 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable("xxx") 绑定到操作方法的入参中. 补充:@PathVariable接收两个参数 首先,@PathVariable无法接收对象,但是可以接收多个值 var data = obj.data;

  • 使用@pathvariable与@requestparam碰到的一些问题及解决

    目录 @pathvariable与@requestparam碰到的一些问题 一.@pathvariable 二.@requestparam @PathVariable和@RequestParam的使用说明 value的uri值为以下三类 拓展 @pathvariable与@requestparam碰到的一些问题 一.@pathvariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {x} 占位符可以通过@PathVariable("x") 绑定到操作方

  • 使用@PathVariable接收两个参数

    目录 @PathVariable接收两个参数 首先 在Controller这样接收 记一个使用@PathVariable的坑 发现问题 解决过程 解决方案 第一种 第二种 第三种 第四种 @PathVariable接收两个参数 首先 @PathVariable无法接收对象,但是可以接收多个值 var data = obj.data; if(obj.event === 'edit'){ //var tmpData = encodeURI(JSON.stringify(data)); layer.o

  • GO接收GET/POST参数及发送GET/POST请求的实例详解

    Golang: 接收GET和POST参数 GET 和 POST 是我们最常用的两种请求方式,今天讲一讲如何在 golang 服务中,正确接收这两种请求的参数信息. 处理GET请求 1.1 接收GET请求 //接收GET请求 func Get(writer http.ResponseWriter , request *http.Request) { query := request.URL.Query() // 第一种方式 // id := query["id"][0] // 第二种方式

  • SpringBoot2之PUT请求接收不了参数的解决方案

    目录 HiddenHttpMethodFilter HttpPutFormContentFilter SpringBoot2之PUT请求接收不了参数的解决办法,这个问题,关乎两个Filter过滤器,是spring3和3.5之后提供的,目的就是解决RESTful中PUT请求或者其他请求的问题. 下面请看详细内容 HiddenHttpMethodFilter html中form表单只支持GET与POST请求,而DELETE.PUT等method并不支持,spring3添加了一个过滤器,可以将这些请求

  • axios 发 post 请求,后端接收不到参数的完美解决方案

    目录 问题场景 问题原因 要点1 要点2 问题分析 解决方案 解决方案一 解决方案二 解决方案三 解决方案四 解决方案五 解决方案六 问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: 'post', url: '/api/lockServer/search', data: { username, pwd } }) 后台说没有接收到你的传参. 这就有

  • HTA文件去除html控件认证和接收命令行参数

    一是利用hta 去掉htm的控件验证 hta1的代码如下: 复制代码 代码如下: <html> <head> <title>Sample HTML Application one</title> </head> <body onload="Viewer.document.location.href='activexcontrol.htm'"> <iframe id="Viewer" app

  • C语言中 int main(int argc,char *argv[])的两个参数详解

    C语言中 int main(int argc,char *argv[])的两个参数详解 argc是命令行总的参数个数: argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数.命令行后面跟的用户输入的参数. int main(int argc, char* argv[]) { int i; for (i = 0; i<argc; i++) cout<<argv[i]<<endl; cin>>i; return 0; } 执行时敲入 F:\MYDOCU

  • axios发送post请求springMVC接收不到参数的解决方法

    axios发送post请求时,出现了参数后台接收不到的情况,分析了下请求,发现是请求头content-type不对,是application/json,正常应该是application/x-www-form-urlencoded. 解决方法有以下三种: 1.设置axios的默认请求头 //设置全局的 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; var instance = a

  • vue中filters 传入两个参数 / 使用两个filters的实现方法

    先给大家介绍下vue中filters 传入两个参数 / 使用两个filters .vue 传入两个参数 <van-col>{{第一个参数|formatVisitTime(第二个参数)}}</van-col> 使用两个filters <van-tag plain :color="item.CreateTime(参数)|formatVisitDate(filters方法)|formatVisitDateColor(filters方法)">{{item.C

  • 解决ajax的delete、put方法接收不到参数的问题方法

    通过修改配置文件来实现Put和Delete请求的参数传递的问题 在web.xml中添加如下代码: <filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping>

随机推荐