前端向后端传入json 后台怎么接收(params呢)

目录

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

二、使用Map接收后台Controller

三、使用@RequestParams

1,params传参

2.地址拼接传参


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

前端json数据:

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

一、使用POJO

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

java 复制代码
@Component
public class user{
    private int id;
    private String name;
}

后端Controller

java 复制代码
@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;

}

此时后台接收时如下

java 复制代码
​
@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 Map<String,Object>map){

System.out.println(map);

}

前端传来的是一个json对象时:{'id'=1,'name'='ww'},可以用Map来获取

@RequestMapping(value = "/update")

@ResponseBody

public String updateAttr(@RequestBody Map<String, String> 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<String,Object>,值的类型建议设置为Object,这样可以使Map能接收各种类型的数据,如字符串、数字、数组和对象等。

三、使用@RequestParams

1,params传参

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

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

java 复制代码
​
@PostMapping("/search")
public void getUser(@RequestParams("keyword") String keyword){
   
    }

​

2.地址拼接传参

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

后端获取参数

java 复制代码
​
@PostMapping("/search")
public void getUser(
            @RequestParams("keyword") String keyword,
            @RequestParams("name") String name){
   
}

​

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

相关推荐
小黑技术栈15 分钟前
关于前端的一些话
前端
用户31268748772034 分钟前
Spring Bean 生命周期到底经历了什么?从实例化到销毁的全链路拆解
java·spring boot
无人生还35 分钟前
从 Vue3 到 React · 快速上手系列第 11 篇:状态管理
前端·vue.js·react.js
GuWenyue37 分钟前
90%前端写React TS都踩坑!一套父子组件+Hooks完整实战,彻底搞懂类型约束
前端·react.js
Flittly39 分钟前
【我的手搓轮子日记】(2)handmade-ioc 手搓 IOC 容器
java·spring boot·spring
Hilaku1 小时前
当 AI 一天写完一周的代码,我们还剩什么优势?
前端·javascript·程序员
尘世中一位迷途小书童1 小时前
无人机航线里的云台角度怎么调?Cesium 做了个视锥 + 鹰眼联动
前端·javascript·数据可视化
思码梁田1 小时前
CSS display 属性:从元素类型转换到隐藏元素的实用指南
前端·css·display·inline·block·none·inline-block
Csvn1 小时前
⚡ Vite 依赖预构建(optimizeDeps)的 3 个经典坑:改了源码不生效、新增依赖 404、缓存怎么清都不行
前端
A24207349301 小时前
Vue3 + TypeScript:后端数据在表格内渲染后进行增删改的完整实现步骤
前端·javascript·typescript