目录
1. 传递单个参数
1.1 关于参数名的问题
2. 传递多个参数
2.1 关于参数顺序的问题
2.2 关于基本类型与包装类的问题
1. 传递单个参数
现创建Spring MVC项目,.java文件内容如下:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/Para")
@RestController
public class ParaController {
@RequestMapping("/M1")
public String m1(String name){
return "Parameter has Received: Name:"+name;
}
}
运行启动类,使用Postman向目标地址发送一个GET请求,将待传参数置于query string中,发送的请求与得到的响应如下::
1.1 关于参数名的问题
请注意:客户端传递给服务器的参数应与服务器创建的参数名相同;
对于传递单个参数的底层逻辑就是从请求的参数中获取参数名为name的值,并给name赋值;
2. 传递多个参数
在Spring MVC项目的.java文件内容如下:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/Para")
@RestController
public class ParaController {
@RequestMapping("/M2")
public String M2(String name, Integer age){
return "Parameters have received: \n"
+ "Name: "+name + "; Age: "+age;
}
}
运行启动类后,构造HTTP请求并发送,详情如下:
2.1 关于参数顺序的问题
注:多个参数传参,与参数的顺序无关,仅与参数名是否匹配有关;
2.2 关于基本类型与包装类的问题
现以基本类型 int 与 包装类Integer 为例:
现Spring MVC项目的.java文件内容如下:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/Para")
@RestController
@RequestMapping("/M3")
public String M3(String name, int age){
return "Parameters have received: \n"
+ "Name: "+name + "; Age: "+age;
}
}
示例1:当 int 型参数有具体传参时:
运行启动类,构造HTTP请求并发送,详情如下:
可见接收正常,返回正常;
示例2:当 int 型参数没有具体传参时:
启动运行类,构造HTTP请求并发送,详情如下:
查看报错信息如下:
建议:在开发中尽量使用包装类,如果使用基本类型的参数,必须要传值(除了boolean类型);
关于包装类的问题,可查看数据结构专栏包装类与泛型一文,链接如下:
【数据结构】_包装类与泛型-CSDN博客https://blog.csdn.net/m0_63299495/article/details/136436372