目录

一、使用POJO若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。后端实体类

二、使用Map接收后台Controller

三、使用@RequestParams

1,params传参

2.地址拼接传参


当前端传来json数据时,后端有多种方式接收
前端json数据:

$.ajax({type:"POST",url:"",data:{ id:121, //数字 name:"wb", //字符串},error=>{},success=>{}})

一、使用POJO
若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。
后端实体类

@Componentpublic class user{private int id;private String name;}

后端Controller

@PostMapping("/student/user")public void getUser(@RequestBody User user){ System.out.println(user);}

前端数据和bean对象属性要一致

必须使用@RequestBody注解

当前台传入数据除了实体类属性外还有其他数据

1.当通过params传入,则使用@RequestParams接收

2.当传入方式跟其他参数一样都是data传入则还是@RequestBody

又因为@RequestBody只能使用一次,所以此时使用实体类User获取不到所有属性,此时我们需要创建一个UserDTO继承User,且给他加入其他传入参数属性

public class UserDTO extends User{

private String age;

}

此时后台接收时如下

​@PostMapping("/student/user")public void getUser(@RequestBody UserDTO userDTO){//获取user对象通过多态User u=userDTO;//获取除此之外的其他属性String age=userDTO.getAge();}​

二、使用Map接收
后台Controller

@PostMapping(“/lhj/getdata”)
public void getData(@RequestBody Mapmap){
System.out.println(map);
}
前端传来的是一个json对象时:{‘id’=1,’name’=’ww’},可以用Map来获取

@RequestMapping(value = “/update”)
@ResponseBody
public String updateAttr(@RequestBody Map map) {
if(map.containsKey(“id”){
Integer id = Integer.parseInt(map.get(“id”));
}
if(map.containsKey(“name”){
String objname = map.get(“name”).toString();
}
return “success”;
对于Map,值的类型建议设置为Object,这样可以使Map能接收各种类型的数据,如字符串、数字、数组和对象等。

三、使用@RequestParams

1,params传参

$.ajax({url: "/search",method: "GET",params: "keyword=1",success: function(response) {}});

若前端请求时通过params传参数,则后端需要使用@RequestParams来与传入参数名相对应,

​@PostMapping("/search")public void getUser(@RequestParams("keyword") String keyword){ }​

2.地址拼接传参

$.ajax({url: "/search?name=hehe",method: "GET",params: "keyword=1",success: function(response) {}});

后端获取参数

​@PostMapping("/search")public void getUser(@RequestParams("keyword") String keyword,@RequestParams("name") String name){ }​

以上就是常见的前后端获取参数方式了~~~