SpringMVC如何接收application/json内容编码类型的参数?

  在上代码之前,有必要先说说@ResquestBody注解的含义:

  1、官方解释如下:

Annotation indicating a method parameter 
should be bound to the body of the web request.
The body of the request is passed through an {@link HttpMessageConverter}
to resolve the method argument depending on the content type of the request.
意思大概是:用该注解标识的方法的参数,会和web请求体绑定。
http消息转换器会根据content-type的设置将请求体解析,从而初始化该方法的参数。

  2、另外还需解释一下使用的场景

GET、POST方式提交的请求:

Content-type:

1、application/x-www-form-urlencoded:@RequestBody不是必须加的

2、mutipart/form-data:@RequestBody不能处理这种格式

3、其他格式,比如application/json,application/xml等,必须使用@RequestBody来处理

PUT方式提交的请求:

以上1和3的场景都是必须使用@RequestBody来处理的,2场景也是不支持的

  3、前端代码如下:(这里必须将JSON对象使用JSON.stringify()转为JSON字符串再传递,否则后台接收不到值)

$.ajax({
    url:"../../Notice/LoadForm.do",
    type:"post",
    contentType:"application/json;charset=UTF-8",
    data:JSON.stringify({"id":"1","title":"标题"})
});

  4、后台接收代码示例

@RequestMapping(value="Notice/LoadForm")
@ResponseBody
public ResultJO loadForm(@RequestBody Notice notice){

}

 

 

 

posted @   AI粉嫩特攻队  阅读(23815)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示