首页 Java java教程 前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?

前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?

Apr 19, 2025 pm 09:15 PM
usdt red

前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?

问题描述: 在使用若依分离版框架开发过程中,前端使用POST请求向后端传递数据,后端却接收到了NULL值。

前端代码:

//修改订单状态
export function updatorderstatus(id,status){
    const data={
        id,
        status
    }
    return request({
        url:"/business/orderinfo/updatestate",
        method:"post",
        data:data
    })
}
登录后复制

前端请求数据截图: (此处应包含前端请求数据的截图)

后端代码 (原代码):

@ApiOperation("订单管理-修改订单状态")
@ApiImplicitParams({
    @ApiImplicitParam(name="id", value = "主键id", required = true, dataType = "integer"),
    @ApiImplicitParam(name="status", value = "状态0进行1结束", required = true, dataType = "integer")
})
@PostMapping("/updatestate")
public AjaxResult updateState(Integer id, Integer status) {
    System.out.println("更改订单编号:"   id   "\n");
    System.out.println("更改订单状态:"   status   "\n");
    // ... (其余代码)
}
登录后复制

后端打印结果截图: (此处应包含后端打印结果的截图,显示id和status为null)

问题分析: 后端使用 Integer id, Integer status 接收参数,在处理POST请求时,Spring Boot 默认情况下无法正确解析请求体中的JSON数据到这些参数。

解决方案: 修改后端代码,使用 @RequestBody 注解将请求体中的JSON数据绑定到一个对象上。

修改后的后端代码:

@ApiOperation("订单管理-修改订单状态")
@PostMapping("/updatestate")
public AjaxResult updateState(@RequestBody OrderStatusDTO orderStatusDTO) {
    System.out.println("更改订单编号:"   orderStatusDTO.getId()   "\n");
    System.out.println("更改订单状态:"   orderStatusDTO.getStatus()   "\n");

    if (orderStatusDTO.getId() == null) {
        return AjaxResult.error("输入主键id");
    }
    if (orderStatusDTO.getStatus() == null) {
        return AjaxResult.error("输入状态");
    }

    BorderInfo borderInfo = new BorderInfo();
    borderInfo.setId(orderStatusDTO.getId());
    borderInfo.setStatus(orderStatusDTO.getStatus());
    System.out.println("更改订单状态:"   borderInfo.toString()   "\n");
    orderInfoService.update(borderInfo);
    return AjaxResult.success();
}
登录后复制

新增OrderStatusDTO类:

public class OrderStatusDTO {
    private Integer id;
    private Integer status;

    // getters and setters
}
登录后复制

通过使用 @RequestBody 注解和创建一个 OrderStatusDTO 类来接收前端传递的JSON数据,后端就能正确解析数据,避免 NULL 值的问题。 请确保前端发送的JSON数据与 OrderStatusDTO 的字段名一致。 同时,检查前端的 request 函数是否正确设置了 headers,例如 Content-Type: application/json

此方案比原先的@RequestParam方案更符合RESTful API的设计规范,也更清晰地处理了POST请求的body数据。

以上是前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

okx全球站登录入口 欧易okx全球站官方登录首页 okx全球站登录入口 欧易okx全球站官方登录首页 Apr 21, 2025 pm 11:57 PM

欧易 OKX 是全球领先的数字资产交易平台。1) 其发展历程包括:2017年上线,2021年启用中文名“欧易”,2022年更名为欧易 OKX。2) 核心服务包括:交易服务(币币、杠杆、合约、DEX、法币交易)和金融服务(余币宝、DeFi挖矿、借贷)。3) 平台特色功能有:行情数据服务和风控体系。4) 核心优势包括:技术实力、安全体系、服务支持和市场覆盖。

如何利用Redis缓存方案高效实现产品排行榜列表的需求? 如何利用Redis缓存方案高效实现产品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...

量子链如何交易 量子链如何交易 Apr 21, 2025 pm 11:42 PM

量子链(Qtum)交易流程包括前期准备、购买和出售三个阶段。1. 前期准备:选择合规交易所、注册账户、进行身份验证、设置钱包。2. 购买量子链:充值资金、寻找交易对、下单交易(市价单或限价单)、确认交易。3. 出售量子链:进入交易页面、选择交易对和下单类型(市价单或限价单)、确认交易和提现。

在多节点环境下,如何确保Spring Boot的@Scheduled定时任务只在一个节点上执行? 在多节点环境下,如何确保Spring Boot的@Scheduled定时任务只在一个节点上执行? Apr 19, 2025 pm 10:57 PM

SpringBoot定时任务在多节点环境下的优化方案在开发Spring...

数字货币充值多久到帐?主流数字货币充值平台推荐 数字货币充值多久到帐?主流数字货币充值平台推荐 Apr 21, 2025 pm 08:00 PM

数字货币充值到账时间因方式不同而异:1. 银行转账通常需1-3个工作日;2. 信用卡或第三方支付平台充值在几分钟到几小时内;3. 数字货币转账根据区块链确认时间,通常10分钟到1小时,但可能因网络拥堵等因素延迟。

虚拟币最老的币排行榜最新更新 虚拟币最老的币排行榜最新更新 Apr 22, 2025 am 07:18 AM

虚拟货币“最老”排行榜如下:1. 比特币(BTC),发行于2009年1月3日,是首个去中心化数字货币。2. 莱特币(LTC),发行于2011年10月7日,被称为“比特币的轻量版”。3. 瑞波币(XRP),发行于2011年,专为跨境支付设计。4. 狗狗币(DOGE),发行于2013年12月6日,基于莱特币代码的“迷因币”。5. 以太坊(ETH),发行于2015年7月30日,首个支持智能合约的平台。6. 泰达币(USDT),发行于2014年,是首个与美元1:1锚定的稳定币。7. 艾达币(ADA),发

币圈杠杆交易所排名 币圈十大杠杆交易所APP最新推荐 币圈杠杆交易所排名 币圈十大杠杆交易所APP最新推荐 Apr 21, 2025 pm 11:24 PM

2025年在杠杆交易、安全性和用户体验方面表现突出的平台有:1. OKX,适合高频交易者,提供最高100倍杠杆;2. Binance,适用于全球多币种交易者,提供125倍高杠杆;3. Gate.io,适合衍生品专业玩家,提供100倍杠杆;4. Bitget,适用于新手及社交化交易者,提供最高100倍杠杆;5. Kraken,适合稳健型投资者,提供5倍杠杆;6. Bybit,适用于山寨币探索者,提供20倍杠杆;7. KuCoin,适合低成本交易者,提供10倍杠杆;8. Bitfinex,适合资深玩

混合型区块链交易平台有哪些 混合型区块链交易平台有哪些 Apr 21, 2025 pm 11:36 PM

选择加密货币交易所的建议:1. 流动性需求,优先选择币安、Gate.io或OKX,因其订单深度与抗波动能力强。2. 合规与安全,Coinbase、Kraken、Gemini具备严格监管背书。3. 创新功能,KuCoin的软质押和Bybit的衍生品设计适合进阶用户。

See all articles