前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 415_@RequestBody接受参数报415错误「建议收藏」

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

作者头像
全栈程序员站长
发布2022-09-05 09:44:17
1.8K0
发布2022-09-05 09:44:17
举报
文章被收录于专栏:全栈程序员必看

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

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.cn/135785.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档