是的,你可以去了解一下@RequestParam和@RequestBody的用法
具体代码你要去@RequestMapping里面找,是它把request的内容封装好了,直接以参数的形式传递出来
如果你自己写,那肯定要写一堆request.params["id"]什么的
如果参数名与请求参数名相同会有解释的
可以接收单个参数,
可以把接收的参数转换为对象,
可以接收同样的参数多个(?age=10&age=20),使用数组来接收
//情况1
@GetMapping("/t1")
public String test01(String name){
//一个key对应一个value
System.out.println("接收的前端参数:"+name);
//name=jack
return null;
}
//情况2
@RequestMapping("/t2")
public String test02(User user){
//User对象中有id,name,age三个参数
System.out.println(user);
//User(id=1, name=jack, age=20)
return null;
}
//情况3
@RequestMapping("/get_post/get02")
@ResponseBody
public String get02(String[] username){ //这个使用数组的形式来接收
//get请求,一个key对应多个value
System.out.println(username.length);//2
return null;
}
发送请求://http://localhost:8080/1203/user/t2?id=1&name=jack&age=20
如果传入参数的名字和方法上的参数名字不匹配则接收不到数据
接收参数的变量名可以和传入的名字不一样
可以接收多个参数
可以设置默认值
如果不加required属性,默认为 true,也就是说,当@RequestParam存在时,是默认required = true条件的,当接收参数不匹配时,会报错;设置为false时表示可以不传参
//情况1.
@GetMapping("/t1")
public String test01(@RequestParam("username")String name){
//一个key对应一个value
System.out.println("接收的前端参数:"+name);
//name=jack
return null;
}
//情况2 xxx?username=zhangsan&username=lisi
@GetMapping("/t1")
public String get03(@RequestParam(value = "username",required = false) List<String> username){ //使用list来接收
//get请求,一个key对应多个value
System.out.println(username);//[zhangsan, lisi]
return username.toString();
}
是的,想深入学习就看看源码