@RequestBody和@RequestParam注解的作用

@RequestBody和@RequestParam的作用都是用来将前端传递的参数,直接绑定到后端controller控制器中设置的参数中的,区别在于:
@RequestBody 限定了前端传递的参数必须为json格式,并且前端不能使用GET方式提交数据,而是用POST方式进行提交,而且@RequestBody 只能有一个。

@RequestParam()可以有多个,用于接收url中的key-value参数的传递。通常我们用于get方式的请求

例如:

@Controller
public class TestController {
    @RequestMapping("/test")
    @ResponseBody
    public Object test(@RequestBody Map requestParam,
                       @RequestParam String phone,//接收url传参
                       @RequestParam String address
                       ) {
        //接收请求体中的json数据   这里的  Map requestParam 也可以是一个实体类 如User user
        String name = (String)requestParam.get("name");
        Integer age = (Integer)requestParam.get("age");

        //返回数据
        List list = new ArrayList<>();
        list.add("@RequestBody==="+name);
        list.add("@RequestBody==="+age);
        list.add("@RequestParam======"+phone);
        list.add("@RequestParam======"+address);

        return list;
    }
}

 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(spring,java)