@RequestBody注解的简单用法

本文介绍如何利用@RequestBody注解接收前端Ajax发送的JSON数据,将其转换为Java对象,并存储到数据库中。详细解释了注解的功能、请求方式的选择及数据格式的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@RequestBody注解

此注解可以接收前端传来的一段json对象的字符串, 对没错是字符串而不是对象, 并把它封装成一个Java类(key键值必须与属性名一一对应) ,不然封装不进去!

前台Ajax异步请求

前台通过Ajax带着一串json对象的字符串与后台交互; 后台把此字符串封装成Java类并存入数据库
注意了:

  1. 请求方式必须为POST, 因为GET的参数是通过URL传递的, 而不是请求体传递的, 所以无法被@RequestBody注解来接收
  2. contentType: “application/json” 和 data: JSON.stringify(json) 必须加上, 因为@RequestBody接收的是字符串而不是json对象
  3. JSON.stringify()方法可以把一个json对象转化为json对象的字符串
$(function () {
    $("#btn").click(function () {
        var json = {"id": 5, "name": "洛昭言", "age": 19};
        $.post({
            url: "/getJSON",
            contentType: "application/json",
            data: JSON.stringify(json),
            success: function (msg) {
                console.log(msg + "成功了");
            },
            error: function () {
                console.log("请求失败")
            }
        })
    })
})

后台的业务逻辑

Commander类:

@Data
public class Commander {
    private long id;
    private String name;
    private long age;
}

Mapper接口:
在这里插入图片描述

CommanderMapper.xml:

<insert id="add">
    insert into commanders
    values (#{commander.id},#{commander.name},#{commander.age})
</insert>

Controller:

@RequestMapping("/getJSON")
public Commander getJSON(@RequestBody Commander commander){  //封装成commander
    commanderDao.add(commander);	//存入数据库
    return commander;
}

说明

Ajax把参数带到后台, 通过@RequestBody注解把它封装成对应的Commander类, 并存入数据库

在这里插入图片描述
在这里插入图片描述

大功告成 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值