问题
在使用SpringMVC时获取参数时,加与不加@RequestParam
都会自动传入参数值,那加与不加的区别是什么?
测试
@GetMapping("test1")
public String test1(String s){
return "参数:"+s;
}
@GetMapping("test2")
public String test2(@RequestParam String s){
return "参数:"+s;
}
直接访问 /test1 和 /test2
test1结果:
参数为null
test2结果:
报错,缺少参数s
结论
- 在不添加
@RequestParam
时,虽然依旧可以获得参数但当传入数据不包含此参数时,参数为NULL,可能导致空指针异常 @RequestParam
可以保证前端传入所需参数,否则会报错,可以通过@RequestParam(required = false)
,让参数成为非必要参数,此时与不使用@RequestParam
相同@RequestParam(defaultValue=xxx)
可以设置参数默认值