tyn243222791
答案
采纳率100%
2019-09-09 13:31

@RequestBody 实体类接收不到数据,但是用com.alibaba.fastjson.JSONObject可以

已采纳
@RequestMapping(value = "/getTest", method = {RequestMethod.POST})
    public @ResponseBody
    CommonResponse getTest(@RequestBody TestForm form {

后台这样写,使用postman测试

请求会直接报400,

<!doctype html>
<html lang="en">

<head>
    <title>HTTP Status 400 – Bad Request</title>
    <style type="text/css">
        h1 {
            font-family: Tahoma, Arial, sans-serif;
            color: white;
            background-color: #525D76;
            font-size: 22px;
        }

        h2 {
            font-family: Tahoma, Arial, sans-serif;
            color: white;
            background-color: #525D76;
            font-size: 16px;
        }

        h3 {
            font-family: Tahoma, Arial, sans-serif;
            color: white;
            background-color: #525D76;
            font-size: 14px;
        }

        body {
            font-family: Tahoma, Arial, sans-serif;
            color: black;
            background-color: white;
        }

        b {
            font-family: Tahoma, Arial, sans-serif;
            color: white;
            background-color: #525D76;
        }

        p {
            font-family: Tahoma, Arial, sans-serif;
            background: white;
            color: black;
            font-size: 12px;
        }

        a {
            color: black;
        }

        a.name {
            color: black;
        }

        .line {
            height: 1px;
            background-color: #525D76;
            border: none;
        }
    </style>
</head>

<body>
    <h1>HTTP Status 400 – Bad Request</h1>
    <hr class="line" />
    <p><b>Type</b> Status Report</p>
    <p><b>Description</b> The server cannot or will not process the request due to something that is perceived to be a
        client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    </p>
    <hr class="line" />
    <h3>Apache Tomcat/8.5.42</h3>
</body>

</html>

如果后台改为

public CommonResponse getTest(@RequestBody JSONObject jsonObject) {

用JSONObject接收则没有问题,请各位大佬告知原因

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_18630487 真-酸辣土豆丝 2年前

    你的前端参数后后边接受对象的参数名字有没有对应上

    点赞 评论 复制链接分享
  • HXNLYW 葫芦胡 2年前

    get请求接口接收一个对象参数时,不用加@RequestBody,直接这样就可以:

    @RequestMapping(value = "/getTest", method = {RequestMethod.POST})
        public CommonResponse getTest(TestForm form) {}
    

    如果是post请求,需要加上 @RequestBody 注解。
    看下这篇文章:https://blog.csdn.net/HXNLYW/article/details/89518579

    点赞 评论 复制链接分享