java 415_@RequestBody接受参数报415错误「建议收藏」

java 415_@RequestBody接受参数报415错误「建议收藏」1.简介@RequestBody作用:1)该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;2)再把HttpMessageConverter返回的对象数据绑定到controller中方法的参数上。使用时机:1)GET、POST方式提时,根据requestheaderConten…

大家好,又见面了,我是你们的朋友全栈君。

1.简介

@RequestBody

作用:

1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机:

1) GET、POST方式提时, 根据request header Content-Type的值来判断:

A.application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);

B.multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);

C.其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

2) PUT方式提交时, 根据request header Content-Type的值来判断:

A.application/x-www-form-urlencoded, 必须;

B.multipart/form-data, 不能处理;

C.其他格式, 必须;

说明:

request的body部分的数据编码格式由header部分的Content-Type指定;

requestBody接收的是JSON对象的字符串,AJAX传递数据使用的是JSON,所以需要使用JSON.stringify()转化为JSON字符串,从而被requestBody接收。

@ResponseBody

作用:

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

2.Spring MVC的配置文件

增加配置

3.需要的jar包

在Maven中增加依赖

Spring-webmvc 和  jsckson-mapper-asl

注:在jsp中使用ajax提交时出现了下面的问题: 415 (Unsupported Media Type), 可能出现的原因如下:

1. dataParam 格式错误,不符合json字符串规范

2. dataParam 参数不能绑定到控制器方法的参数上面,不是一一对应

3. 没有在ajax提交时设置contentType

contentType指的是前台传递到后台的格式,dataType指的是由后台传到前台的格式

4. jackson的jar包不对或者不全:

不应该使用org.codehaus.jackson下面的jackson.jar, 应该使用com.fasterxml.jackson.core下面的jackson-core和jackson-databind 的jar包

5. 加上

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135785.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cad文字样式设置方法_cad中标注样式的快捷键

    cad文字样式设置方法_cad中标注样式的快捷键有些CAD新手在进行CAD绘图的过程中,想要修改图纸中CAD文字样式时不知道怎么操作,其实很简单,直接调用CAD文字样式快捷键命令即可。下面和小编一起来了解一下浩辰CAD软件中CAD文字样式快捷键命令

    2022年8月5日
    5
  • ros的安装教程_cad安装教程

    ros的安装教程_cad安装教程介绍ROS安装的三种方法,使用第一种方法可以简单快速安装ROS

    2022年9月10日
    3
  • 时滞/延迟微分方程(delay-differential equation)

    时滞/延迟微分方程(delay-differential equation)问题原来微分方程里面还有一类比较特殊复杂的。delaydifferentialequation(维基).翻了几篇相关的硕士和博士论文,感觉用处不大。不过,用软件做出来效果比较漂亮。与之相关的,分支或分叉(bifurcation)是一个似乎在包括迭代的动力系统里面都普遍的一个概念。Wolfram关于这个概念的文档延迟微分方程是一种微分方程,其在当前时间的时间导数取决于它在以往时间的解

    2022年9月30日
    3
  • MySql必知必会实战练习(二)数据检索

    在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作。1.Select子句使用顺序select>DISTINCT>f

    2021年12月29日
    33
  • 基于MATLAB的语音信号处理

    基于MATLAB的语音信号处理基于MATLAB的语音信号处理摘要:语音信号处理是目前发展最为迅速的信息科学研究领域中的一个,是目前极为活跃和热门的研究领域,其研究成果具有重要的学术及应用价值。语音信号处理的研究,对于机器语言、语音识别、语音合成等领域都具有很大的意义。MATLAB软件以其强大的运算能力可以很好的完成对语音信号的处理。通过MATLAB可以对数字化的语音信号进行时频域分析,方便地展现语音信号的时域及频域曲线,并且根…

    2022年5月26日
    35
  • Scanner in = new Scanner(System.in);是什么意思?

    Scanner in = new Scanner(System.in);是什么意思?Scanner是一个类,in是一个实例或者说是对象!new是一个创建对象的方法……Scanner这个类最实用的地方表现在获取控制台输入。就相当与声明这是一个人类(Scanner),这个人类是谁(in),后面新创建一个人类newScanner(system.in),system.in表示他有什么特征。总的来说就是新创建一个输入的Scanner对象,然后赋值给in。用人类的话来说…

    2022年7月20日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号