Spring MVC 参数绑定详解
本文介绍了 Spring MVC 中处理不同请求参数的多种方式,涵盖单个及多个参数、对象封装、数组与集合、JSON 数据交互、路径变量及文件上传。
一、传递单个参数
接收单个参数,在 Spring MVC 中直接用方法中的参数即可。
@RequestMapping("Param")
@RestController
public class ParamController {
@RequestMapping("a1")
public String tex1(String string) {
return "接收到参数:" + string;
}
}
访问 http://127.0.0.1:8080/Param/a1?string=Spring 可获取结果。
Spring MVC 会根据方法参数名找到对应的请求参数并赋值。若参数不一致,则获取不到(包装类型为 null)。
注意:
- 使用基本类型接收参数时,参数必须传(除 boolean 类型),否则报 500 错误。
- 类型不匹配会报 400 错误。
1.1 正常传递参数
@RequestMapping("a2")
public Object text2(int a) {
return "接收到参数 a:" + a;
}
HTTP 响应状态码为 200。
1.2 不传参数
若未传参数且使用基本类型,服务器返回 500 错误。
日志提示:可选的整型参数存在,但由于被声明为基本类型,无法转换为 null 值。建议将其声明为对应基本类型的对象包装器。
1.3 传递参数类型不匹配
对于包装类型,如果不传对应参数,Spring 接收到的数据则为 null。开发中,对于可能为空的数据,建议使用包装类型。
二、传递多个参数
传递多个参数和传输一个参数一样,直接使用方法的参数接收即可。
@RestController
public class ParamController {
@RequestMapping("Param")
public String Demo1(String name, String age) {
return "接收到参数 name: " + name + ",age: " + age;
}
}
后端程序根据参数名称进行匹配,参数位置不影响获取结果。
三、传递对象
当参数较多时,可将参数封装成一个对象。Spring MVC 支持自动实现对象参数的赋值。


