1、@RequestBody:参数是来自requestBody中,即请求体,(于处理非 Content-Type: application/x-www-form-urlencoded编码格式)
2、@RequestParam:参数来自requestHeader中,即请求头,(用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性)
3、@PathVariable :restful风格,例如:
后端接收前端参数的几种方式:
1、直接把表单的参数写在Controller相应的方法的形参中,适用于GET 和 POST请求方式
2、通过HttpServletRequest接收,适用于GET 和 POST请求方式
3、通过一个bean来接收,适用于GET 和 POST请求方式
4、通过@PathVariable获取路径中的参数,适用于GET请求
5、使用@ModelAttribute注解获取参数,适用于POST请求
6、用注解@RequestParam绑定请求参数到方法入参,适用于GET 和 POST请求方式
7、用注解@RequestBody绑定请求参数到方法入参 , 用于POST请求
application/x-www-form-urlencoded:ajax请求中content-type:application/x-www-form-urlencoded代表参数以键值对传递给后台,controller接收可以单个参数接收,如@RequestParam("param") String param;也可以用类接收User user,
application/json:ajax请求中content-type:application/json代表参数以json字符串传递给后台,controller接收需要@RequestBody 接收参数 例如:@RequestBody Map<String, Object> map,也可以使用类接收@RequestBody User user