问题
在使用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)可以设置参数默认值